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