linux系統一般來說分為兩大類:1、RedHat系列:Redhat、Centos、Fedora等;2、Debian系列:Debian、Ubuntu等。
linux系統中,TCP/IP網路是通過若干個文字檔案來進行配置的,需要配置這些檔案來聯網,下面對linux兩大類系統中基本的TCP/IP網路配置檔案做學習總結。
第一類Debian中Ubuntu系統為例
Ubuntu系統的網路配置檔案有interfaces,resolv.conf等。
一、網路介面配置檔案:/etc/network/interfaces
1、內容如下:
# The loopback network interface
auto lo#網路卡開機自動掛載
iface lo inet loopback
auto eth0#網路卡開機自動掛載,連線網路
iface eth0 inet static #static表示使用固定ip,dhcp表示使用動態ip
address 10.1.101.227 #設定ip地址
netmask 255.255.255.0 #設定子網掩碼
gateway 10.1.101.254 #設定閘道器
dns-nameservers 10.1.101.51
修改了interfaces用下面命令使網路設定生效:/etc/init.d/networking restart #重啟網路
或者ifdown eth0 && ifup eth0
2、設定第二個ip地址(虛擬IP地址)
編輯檔案/etc/network/interfaces
auto eth0:1
iface eth0:1 inet static
address 192.168.1.60
netmask 255.255.255.0
network x.x.x.x
broadcast x.x.x.x
gateway x.x.x.x
二、DNS配置檔案:/etc/resolv.conf
首先可以在/etc/hosts中加入一些主機名稱和這些主機名稱對應的IP地址,這是簡單的使用本機的靜態查詢。
要訪問DNS伺服器來進行查詢,需要設定/etc/resolv.conf檔案。
通過該檔案設定DNS伺服器的IP地址及DNS域名,該檔案是由域名解析器使用的配置檔案。
(域名解析器:resolver,一個根據主機名解析IP地址的庫)
domainname 域名
search domainname.com #表示提供了一個不包括完全域名的主機時,在主機後面新增domainname.com字尾
nameserver x.x.x.x#設定首選DNS,解析域名時使用該地址指定的主機為域名伺服器,按nameserver出現順序查詢。
nameserver x.x.x.x#設定備用DNS
sortlist #對返回的域名進行排序
使網路設定生效:/etc/init.d/networking restart #重啟網路
三、/etc/hosts檔案
包含(本地網路中)已知主機的一個列表。如果系統的IP不是動態獲取,就可以使用它。對於簡單的主機名解析(點分表示法),在請求DNS或NIS網路之前,/etc/hosts.conf通常會告訴解析程式先檢視這裡。
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
四、/etc/host.conf
當系統中同時存在DNS域名解析和/etc/hosts主機表機制時,由該/etc/host.conf確定主機名解釋順序。
order hosts,bind #名稱解釋順序,order是關鍵字,定義先用本機hosts主機表進行名稱解釋,如果不能解釋,再搜尋bind名稱伺服器(DNS)。
multi on #允許主機有多個IP地址
nospoof on #禁止IP地址欺騙
五、/etc/services
Internet網路服務檔案,將網路服務名轉換為埠號/協議。由inetd、telnet、tcpdump和一些其他程式讀取。檔案中每一行對應一種服務,它由4個欄位組成,中間用TAB或者空格分隔,分別表示 “服務名稱”、“使用埠”、“協議名稱”以及“別名”。
服務 埠/埠型別 別名 $ cat /etc/services |more tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote msp 18/tcp # message send protocol
六、主機名稱配置檔案/bin/hostname
用命令hostname newname來設定新主機名
系統啟動時,它會從/etc/hostname來讀取主機的名稱
#假設修改主機名為controller hostname controller echo "controller" > /etc/hostname
七、網路相關指令碼和命令
/etc/init.d/networking
系統啟動時的初始化指令碼,當系統以某個級別啟動時,它負責初始化所有一級配置的網路介面。
ifconfig命令
不帶任何引數的ifconfig命令檢視當前系統網路配置情況:
eth0:表示網路卡代號
lo:linux內部的網路迴環地址,用於模擬網路行為
HWaddr:網路卡的硬體地址,也就是MAC地址
inet addr:網路卡的Ip地址
Bcast:廣播地址
Mask:子網掩碼
MTU:最大傳輸單元(Maximum Trassmission Unit),標識網路介面的可傳輸的最大封包,此值設定錯誤可能引起網路故障。
PX:網路從啟動到現在為止資料接收情況
TX:網路從啟動到現在為止資料傳送情況
collisions:網路訊號發生衝突的情況
防火牆相關命令
檢視防火牆狀態:sudo ufw status
啟用防火牆:
sudo ufw enable #開啟了防火牆,並在系統啟動時自動開啟
sudo ufw default deny #關閉所有外部對本機的訪問,但本機訪問外部正常。
sudo ufw disable #禁用防火牆,預設是禁用的
開啟某個埠
sudo ufw allow smtp #允許所有的外部IP訪問本機的25/tcp (smtp)埠
sudo ufw allow 22/tcp #允許所有的外部IP訪問本機的22/tcp (ssh)埠
sudo ufw allow 53 #允許外部訪問53埠(tcp/udp)
sudo ufw allow from 192.168.1.100 #允許此IP訪問所有的本機埠
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
禁用或關閉某個埠
sudo ufw delete allow 53 #禁用 53 埠
sudo ufw delete allow 80/tcp #禁用 80 埠
sudo ufw deny smtp #禁止外部訪問smtp服務
sudo ufw delete allow smtp #刪除 smtp 埠的許可
sudo ufw delete allow from 192.168.254.254 #禁止某特定 IP
第二類redhat中redhat為例
redhat系統的網路配置
一、修改IP地址
1、ip配置檔案
修改對應網路卡的IP地址配置檔案/etc/sysconfig/network-scripts/ifcfg-<interface-name>檔案
在Redhat中,系統網路設定的配置檔案儲存在/etc/sysconfig/network-scripts目錄下。ifcfg-eth0代表第一塊網路卡的配置資訊,ifcfg-eth1代表第二塊網路卡的配置資訊。在啟動時,系統通過讀取這個配置檔案決定某個網路卡是否啟動和如何配置。
若希望手工修改網路地址或增加新的網路連線,可以通過修改對應的ifcfg-<interface-name>或建立新的檔案來實現。
下面是/etc/sysconfig/network-scripts/ifcfg-{interface-name}的配置資訊含義
DEVICE={name} #{name}表示網路卡對應物理裝置的名字,eth0是第一塊網路卡,雙網路卡或更多依次為eth1,eth*
TYPE=Ethernet #網路型別,Ethernet代表乙太網
ONBOOT=yes/no #系統啟動引導時是否啟用該網路介面,設為yes,即啟用此裝置
NM_CONTROLLED=yes
BOOTPROTO=none/static/bootp/dhcp #設定網路卡獲得ip地址的方式,可能選項為none,static,bootp,dhcp,分別對應不適用協議,靜態指定ip地址,通過dhcp協議獲得ip地址,通過bootp協議獲得ip地址
IPADDR={address} #如果設定網路卡獲得ip地址的方式為靜態指定,{addres}就代表賦給該網路卡的ip地址
NETMASK={mask} #{mask}表示網路卡對應的網路掩碼
NETWORK={address} #{address}表示網路卡對應的網路地址,(可以不要)
GATEWAY={address} #{address}預設閘道器
DNS1=10.1.101.51 #DNS服務配置
BROADCAST={address} #{address}對應的子網廣播地址,如192.168.0.255(可以不要)
MACADDR={MAC-address} #{MAC-address}表示指定一個MAC地址
USERCTL=yes/no # 是否允許非root使用者控制該裝置
HWADDR=50:e5:49:df:b0:8b #對應的網路卡實體地址
IPV6INIT=no #IPV6
IPV6_AUTOCONF=no
2、單網路卡繫結2個IP
只需要在/etc/sysconfig/network-scripts目錄裡面建立一個名為ifcfg-eth0:0的檔案,
內容樣例為:
DEVICE="eth0:0"
IPADDR="x.x.x.x"
NETMASK="255.255.255.0"
如果需要再多繫結一個IP地址,只需要把檔名和檔案內的DEVICE中的eth0:0加一即可。
linux最多可支援255個IP別名。
二、修改主機名
臨時修改:hostname xxx
永久修改:/etc/sysconfig/network
[root@localhost ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=localhost.localdomain #修改localhost.localdomain為xxx
localhost.localdomain中點的前面是主機名,後面是域名。如果沒有點就代表是主機名。
三、修改閘道器
閘道器配置檔案為/etc/sysconfig/network檔案
閘道器配置也可以在/etc/sysconfig/network-scripts/ifcfg-eth0中配置。
network用來指定伺服器上的網路配置資訊,該檔案配置項含義如下:
NETWORK=yes #表示系統是否使用網路,一般設定為yes,如果設定為no,則不能使用網路,而且很多系統服務程式將無法啟動
RORWARD_IPV4=yes
HOSTNAME={hostname} #{hostname}表示伺服器的主機名,這裡的主機名要和/etc/hosts中設定的主機名對應
GAREWAY={address} #{address}設定本機連線的閘道器的IP地址,例如,閘道器10.0.0.2
GATEWAYDEV={device} #{device}表示閘道器的裝置名,如:eth0
NETWORK=yes/no #網路是否被配置
FORWARD_IPV4=yes/no #是否開啟IP轉發功能
四、修改DNS
DNS配置檔案為/etc/resolv.conf檔案
DNS配置也可以在/etc/sysconfig/network-scripts/ifcfg-eth0中配置。
resolv.conf檔案用來配置DNS客戶端,它包含了DNS伺服器地址和域名搜尋配置。同Ubuntu的配置。目前最多支援三個DNS伺服器。
nameserver 8.8.8.8 #google域名伺服器
nameserver 8.8.8.4 #google域名伺服器
五、/etc/hosts檔案
在機器啟動時,在可用查詢DNS以前,機器需要查詢一些主機名到IP地址的匹配。這些資訊存放在/etc/hosts檔案中。
在沒有域名伺服器的情況下,系統上所有的網路程式都通過查詢該檔案來解析對應於某個主機名的IP地址。
[root@lxy-nfs network-scripts]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.1.101.117 lxy-nfs lxy-nfs.engine.com
最左邊是一系列主機IP資訊,中間是一些列主機名。任何後面的列都是該主機的別名。
六、重啟網路配置方法
1、#service network restart
2、#/etc/init.d/network restart
3、#ifdown eth0
#ifup eth0
4、#ifconfig eth0 down
#ifconfig eth0 up
七、相關命令
修改IP地址
1、即時生效:
#ifconfig eth0 192.168.0.2 netmask 255.255.255.0
2、重啟系統生效:
修改/etc/sysconfig/network-scripts/ifcfg-eth0
修改閘道器Default Gateway
1、即時生效
#route add default gw 192.168.0.2 netmask 255.255.255.0
2、重啟系統生效:
修改/etc/sysconfig/network
修改DNS
修改/etc/resolv.conf修改後可即時生效,啟動同樣有效
修改host name
1、即時生效
hostname newname
2、重啟系統生效
修改/etc/sysconfig/network
啟動和關閉防火牆
1、即時生效:
#service iptables start
#service iptables stop
2、重啟系統生效:
#service iptables on
#service iptables off
總結網路配置:配置IP,閘道器,DNS,然後重啟網路。
開放指定埠
1、用命令
#開放埠:8080
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
#重啟防火牆以便改動生效:(或者直接重啟系統)
/etc/init.d/iptables restart
2、直接修改iptables
直接在/etc/sysconfig/iptables中增加一行:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT