Linux網絡基礎
常見的協議有FTP(文件傳輸協議,用於實現互聯網中交互式文件傳輸功能)、Telnet(遠程登陸協議,用於實現互聯網中的遠程登陸功能)、SMTP(簡單郵件傳輸協議,用來實現互聯網中電子郵件傳送功能)、HTTP(超文本傳輸協議,用於實現互聯網中的WWW服務)、DNS(域名解析,用於實現主機名與IP地址之間的映射)、NFS(網絡文件系統,用於網絡中不同主機間的文件共享)、SMB(服務信息塊,用於Windows主機與Linux間的文件共享)
2.網絡接口:爲了使用外圍設備的響應接口,在Linux核心文件(kernel)中都有相應的名字
Lo:本地回送接口用於網絡軟件測試以及本地機進程間的通訊
Ethn:以太網接口
Pppn:第n個PPP接口,PPP接口按照與它們有關的PPP配置順序連接在串口上
3.IP地址和域名、子網掩碼、路由選擇、地址轉換與反轉換
一、配置TCP/IP 網絡
橫塊配置文件用於在Linux系統啓動時加載系統所需的硬件驅動模塊,RH9模塊配置文件的全路徑名爲"/etc/modules.conf" 例:grep eth /etc/modules.conf
alias eth0 pcnet32當前系統的網卡eth0所使用的驅動模塊名稱爲"pcnet32"
TCP/IP參數:所有的網絡參數都是通過配置文件生成的。
1.配置網卡:/etc/syscnfig/network-scripts/ifcfg-eth0文件
DEVICE=eth0 物理設備名字
BOOTPROTO=static|dhcp|bootp 靜態的|使用DHCP協議|使用BOOTP協議
BROADCAST=192.168.1.255 廣播地址
IPADD=192.168.1.67 表示IP地址
NETMASK=255.255.255.0 子網掩碼
NETWORK=192.168.1.0 網絡號
ONBOOT=yes|no 表示系統啓動時是否激活該網卡
/etc/rc.d/init.d/network restart 重新啓動網卡
2./etc/sysconfig/network 指定服務器上網絡配置信息
NETWORKING=yes|no 網絡是否被配置
HOSTNAME=linux9 服務器主機名
GATEWAY=192.168.1.1 網絡網關的IP地址。
3.DNS客戶配置文件/etc/resolv.conf設置DNS服務器
nameserver 192.168.1.2 表示解析域名時使用該地址指定的主機爲域名服務器,最多指定於個DNS服務器
domain abc.com指定當前主機所在域的域名
4.名稱解析順序/etc/host.conf 指定主機名的解析順序
order hosts,bind 表示先查詢/etc/hosts/文件,再使用DNS來解析主機名
multi on 指定是否/etc/hosts文件中指定的主機可以有多個地址
nospoof on 指不允許對該服務器進行IP地址欺騙
5.HOST文件配置/etc/hosts 主機名與IP 地址的映射
例Linux8 localhost.localdomain localhost
166.111.219.157 wnt-hp
166.111.219.181 wnt-sun
二.網絡相關命令
1."ipconfig"
顯示當前活動的網卡設置#ifconfig
#ifconfig -a 顯示系統中所有網卡的信息
#ifconfig 網卡設備名稱 例#ifconfig lo|eth0
#ifconfig 網卡設備名稱 up|down用於啓動|停止系統中指定的非活動網卡
設置網卡的的IP地址 ifconfig 網卡設備名稱 IP地址 例#ifconfig eth0 192.168.2.57
2.ifup啓動指定的非活動網卡設備
ifup|ifdown 網卡設備名 例ifup|ifdown eth0
3.route:顯示和動態修改系統當前的路由表信息
#route 顯示路由信息
#route add -net 網絡地址 netmask 子網掩碼 dev 網卡設備名 例#route add -net 10.0.0 .0 netmask 255.0.0.0 dev eth0
#route del -net 網絡地址 netmask 子網掩碼 例route del -net 10.0.0 .0 netmask 255.0.0.0
#route add default gw 網關IP地址 dev 網卡設備名 例#route add default gw 192.168.2.1 dev eth0
#route del default gw 網關IP地址 例route del default gw 192.168.2.1
4.ping
ping [-c 發出報文數] 目的主機地址 該命令通過向被測試的目的主機地址發送ICMP報文並收取回應報文,來測試當前主機到目的主機的網絡連接狀態
例ping 192.168.2.57 Ctrl+C組合鍵停止當前命令
4.nslookup 用於使用系統設定的DNS服務器解析域名,該命令有交互式查詢方式和命令行查詢方式
5.netstat
交互式查詢方式
nslookup
>[url]www.abc.com[/url]
>192.168.2.57
>exit
命令行查詢方式:nslookup 主機域名|IP地址 例#nslookup [url]www.abc.com[/url] #nslookup 192.168.2.57
7.netstat
#netstat -i 快速檢查接口狀態信息
#netstat -t 顯示所有活動的TCP連接
#netstat -vat 顯示所有活動和被監聽的TCP連接
三.守護進程和xinetd
1.守護進程:Linux系統上提供服務的程序是由運行在後臺的守護程序daemon來執行的,它在後臺守護程序在系統開機後就運行了,並且在時刻地監聽前臺客戶的服務請求,一旦客戶發出了服務請求,守護進程便爲它們提供服務
2.Red Hat Linux9的守護進程
named DNS服務器,mysqld一種數據庫服務器,network激活已配置網絡接口的腳本程序,nfs打開NFS服務,random提供高質量的隨機數生成,routed路由守候進程,使用動態RIP路由選擇協議,smbd Samba文件共享打印服務,snmd本地簡單網絡管理服務進程,xinetd支持多種網絡服務的核心守護程序
3.守護進程的工作原理
網絡程序之間的連接是通過端口之間的連接而實現的,在C/S模型中,服務器守護進程的工作首先打開一個端口,並且等待(Listen)進入的連接,如果客戶提請了一個連接,守護進程就創建(fork)子進程來響應此連接,連接成功之後客戶機與服務器通過端口進行數據通信.而父進程繼續監聽更多的服務請求.對於系統所要提供的每一種服務,都必須運行一個監聽某個端口連接發生的守護程序,造成了系統資源的浪費,爲此UNIX類系統都運行了一個"網絡守護進程服務程序(超級服務器)"的概念,它爲許多服務創建套接字(Socket),並且使用Socket系統調用同時監聽所有這些端口,當遠程系統請求一個服務時,網絡守護進程服務程序監聽到這個請求並且會產生該端口的服務器程序爲客戶提供服務,Red Hat 9使用的守護進程服務程序xinetd(extended internet daemon).
4.守護進程的運行方式
獨立運行的守護進程:獨立運行的守護進程由init腳本負責管理,其腳本存放在/etc/rc.d/init.d/目錄下,所有的系統服務都是獨立運行的如syslogd、xinetd等
由網絡守護進程服務程序運行的守護進程:要運行的守護進程由xinetd啓動,由xinetd管理的守護進程的配置文件存入放在/etc/xinetd.d/目錄下,默認的xinetd的主配置文件是/etc/xinetd.conf,xinetd本身是獨立運行的守護進程,由xinetd監控的網絡服務如telnet、talk等。但對於服務質量很大的守護進程如HTTP服務、FTP服務將影響到其他服務的運行,同時也影響所提供服務的響應,爲此,常用的知名網絡服務的守護進程需要單獨啓動,pstree
5.xinetd:與早期的intetd+tcp_wrapper的功能相比更加強大和安全,其功能是:
支持對tcp、udp、RPC服務
基於時間段的訪問控制
功能遠備的log功能
能有效的防止DoS(Denial of Service)***
能限制啓動的所有服務器數目
能限制log文件大小
將某個服務綁定在特定的系統接口上從而能實現只允許私有網絡訪問某項服務
能實現其作爲其它系統的代理
6.xinetd提供的服務程序由/etc/services文件指出,它說明了xinetd可提供服務的端口號和名字,實際啓動相應的守護進程去處理則需要另外的配置文件/etc/xinetd.conf和/etc/xinetd.d/*
7./etc/xinetd.conf該文件使用defaults{......}項爲所有服務指定缺省值
例defaults{instances =60表示xineted可以同時運行的最大進程數 log_type的設置中指定使用syslogd進行服務登記 log_on_success指定成功時,登記客戶機IP地址和進程的PID log_on_failure} includedir /etc/xinetd.d指定每種服務的配置文件存放在/etc/xinetd.d目錄下,並將其加載
例telnet服務service telnet{disable=yes|no表示當前不允許這項服務 flags=REUSE表示當中斷或重啓xinetd時,TCP/IP Socket可重用 socket_type=stream表示使用TCP的Socket類型 wait=no表示爲該服務提供多線程的功能 user=root表示設置進程的UID server=/usr/sbin/in.telnetd該項服務程序的完整路徑 log_on_failure ==USERID表示將失敗的UID添加到系統登記表中}