linux系統通常來講分爲兩大類:一、RedHat系列:Redhat、Centos、Fedora等;二、Debian系列:Debian、Ubuntu等。linux
linux系統中,TCP/IP網絡是經過若干個文本文件來進行配置的,須要配置這些文件來聯網,下面對linux兩大類系統中基本的TCP/IP網絡配置文件作學習總結。服務器
Ubuntu系統的網絡配置文件有interfaces,resolv.conf等。網絡
一、內容以下:dom
# The loopback network interfacessh
auto lo#網卡開機自動掛載tcp
iface lo inet loopbackoop
auto eth0#網卡開機自動掛載,鏈接網絡學習
iface eth0 inet static #static表示使用固定ip,dhcp表示使用動態ipgoogle
address 10.1.101.227 #設置ip地址spa
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
二、設置第二個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
首先能夠在/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 #重啓網絡
包含(本地網絡中)已知主機的一個列表。若是系統的IP不是動態獲取,就可使用它。對於簡單的主機名解析(點分表示法),在請求DNS或NIS網絡以前,/etc/hosts.conf一般會告訴解析程序先查看這裏。
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
當系統中同時存在DNS域名解析和/etc/hosts主機表機制時,由該/etc/host.conf肯定主機名解釋順序。
order hosts,bind #名稱解釋順序,order是關鍵字,定義先用本機hosts主機表進行名稱解釋,若是不能解釋,再搜索bind名稱服務器(DNS)。
multi on #容許主機有多個IP地址
nospoof on #禁止IP地址欺騙
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
用命令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系統的網絡配置
一、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個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配置文件爲/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域名服務器
在機器啓動時,在可用查詢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信息,中間是一些列主機名。任何後面的列都是該主機的別名。
一、#service network restart
二、#/etc/init.d/network restart
三、#ifdown eth0
#ifup eth0
四、#ifconfig eth0 down
#ifconfig eth0 up
修改IP地址
一、即時生效:
#ifconfig eth0 192.168.0.2 netmask 255.255.255.0
二、重啓系統生效:
修改/etc/sysconfig/network-scripts/ifcfg-eth0
修改網關Default Gateway
一、即時生效
#route add default gw 192.168.0.2 netmask 255.255.255.0
二、重啓系統生效:
修改/etc/sysconfig/network
修改DNS
修改/etc/resolv.conf修改後可即時生效,啓動一樣有效
修改host name
一、即時生效
hostname newname
二、重啓系統生效
修改/etc/sysconfig/network
啓動和關閉防火牆
一、即時生效:
#service iptables start
#service iptables stop
二、重啓系統生效:
#service iptables on
#service iptables off
總結網絡配置:配置IP,網關,DNS,而後重啓網絡。
開放指定端口
一、用命令
#開放端口:8080
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
#重啓防火牆以便改動生效:(或者直接重啓系統)
/etc/init.d/iptables restart
二、直接修改iptables
直接在/etc/sysconfig/iptables中增長一行:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT