(轉)linux配置網卡的命令
linux配置網卡的命令
原文:http://blog.51cto.com/lanxianting/1754923
1、配置命令
如果一臺服務器需要通外網,能被遠程連接,就得給這個臺服務器配置ip,子網掩碼和網關和DNS,下面就來說下網卡的配置方式及各種命令。
配置方式:
1、靜態指定,ifconfig、ip
ifconfig命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[root@magedu ~] # ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.18.254.97 netmask 255.255.0.0 broadcast 172.18.255.255
inet6 fe80::20c:29ff:fe7c:7e0b prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7c:7e:0b txqueuelen 1000 (Ethernet)
RX packets 4402 bytes 722088 (705.1 KiB)
RX errors 0 dropped 26 overruns 0 frame 0
TX packets 103 bytes 12847 (12.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 // 環回地址
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback) RX packets 2 bytes 98 (98.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2 bytes 98 (98.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
|
直接ifconfig命令可以查看當前啟用的網卡及IP地址,子網掩碼,mac地址等。後面加個-a選項可以顯示出當前服務器上所有的網卡信息,包括未啟用的。
1 2 3 4 5 |
[root@magedu ~] # ifconfig eno33554960 192.168.0.100/24 up
eno33554960: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::20c:29ff:fe7c:7e15 prefixlen 64 scopeid 0x20<link>
|
用法: ifconfig ethX IP/MASK up|down
ifconfig後面直接接網卡名稱 IP地址和掩碼可以直接配置IP,並且是立即生效的,但不是永久生效。
也可以直接ifup ethX /ifdown ethX 啟動網卡/關閉網卡。
1 2 3 4 |
[root@magedu ~] # ifconfig eno33554960 promisc //開啟混雜模式
[root@magedu ~] # ifconfig eno33554960 -promisc //關閉混雜模式
eno33554960: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500
|
混雜模式:指的是一臺服務器能夠接收到所有的數據流,無論目標地址是否是它,默認情況下網卡只把發給本機的包(包括廣播包)傳送給上層程序。一般是網絡管理員診斷網絡問題時開啟。
route:路由查看及管理
路由條目類型:
主機路由:目標地址為單個IP (host )
網絡路由:目標地址為IP網絡 ( net )
默認路由:目標為任意主機,0.0.0.0/0.0.0.0
1 2 3 4 5 6 |
[root@magedu ~] # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.18.0.1 0.0.0.0 UG 100 0 0 eno16777728
172.18.0.0 0.0.0.0 255.255.0.0 U 100 0 0 eno16777728
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eno33554960
|
直接route的話會把ip地址反解成主機名,如果路由中有大量的單機地址,會導致route顯示非常的慢,而且效率非常低。
-n:以數字形式顯示路由信息.
添加路由條目: [子網掩碼] [下一跳]
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
1 2 3 4 5 |
[root@magedu ~] # route add -net 10.0.0.0/8 gw 172.18.0.1 //網卡可以省略
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.18.0.1 0.0.0.0 UG 100 0 0 eno16777728
10.0.0.0 172.18.0.1 255.0.0.0 UG 0 0 0 eno16777728
|
註意,下一跳的地址必須跟網卡的IP在同一網段上。
刪除路由條目:
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
[root@magedu ~]# route del -net 10.0.0.0/8
[root@magedu ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 172.18.0.1 0.0.0.0 UG 100 0 0 eno16777728
default:默認路由,相當於0.0.0.0
netstat命令:狀態及統計數據查看
-rn:以數字形式顯示內核路由表 相當於route -n
顯示網絡連接狀態:
-t:顯示tcp協議的相關的連接 tcp:面向連接的協議;通信開始之前,要建立一個虛鏈路;通信完成後還要拆除連接
-u:顯示udp協議的相關連接 udp:無連接協議,直接發送數據報文
-w:顯示raw socket(套接字)的相關連接
-l:顯示正在監聽的相關連接
-a:顯示所有連接
-n:以數字形式顯示IP和端口
-p: 顯示相關的進程和PID
常見的組合: -ntlp /-utlp
1 2 3 4 5 6 7 |
[root@magedu ~] # netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID /Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1373 /sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2010 /master
tcp6 0 0 :::22 :::* LISTEN 1373 /sshd
tcp6 0 0 ::1:25 :::* LISTEN 2010 /master
|
顯示接口的統計數據:
netstat -I //顯示所有接口
netstat -Idev //顯示單個網卡接口
1 2 3 4 5 6 |
[root@magedu ~] # netstat -I
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eno16777 1500 31798 0 124 0 1907 0 0 0 BMRU
eno33554 1500 130267 0 0 0 141 0 0 0 BMPRU
lo 65536 0 0 0 0 0 0 0 0 LRU
|
ip命令:
ip link:網絡設備配置
ip link show:顯示網絡設備信息
ip link set :修改網絡設備信息
1 2 3 4 5 6 7 |
[root@magedu ~] # ip link show //顯示二層網絡信息
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link /loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link /ether 00:0c:29:7c:7e:0b brd ff:ff:ff:ff:ff:ff
3: eno33554960: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link /ether 00:0c:29:7c:7e:15 brd ff:ff:ff:ff:ff:ff
|
修改eno33554960的名稱: 修改前得把網卡down掉。
用法:ip link set name ethX Name ethX
1 2 3 4 5 |
[root@magedu ~] # ip link set eno33554960 down
[root@magedu ~] # ip link set eno33554960 name eth0
[root@magedu ~] # ip link show
3: eth0: <BROADCAST,MULTICAST,PROMISC> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
link /ether 00:0c:29:7c:7e:15 brd ff:ff:ff:ff:ff:ff
|
把eth0的混雜模式去掉:
用法:ip link set FUNCTION on/off ethX
1 2 3 4 |
[root@magedu ~] # ip link set promisc off eth0
[root@magedu ~] # ip link
3: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
link /ether 00:0c:29:7c:7e:15 brd ff:ff:ff:ff:ff:ff
|
netns PID : 虛擬化,用於將接口移動到指定的網絡名稱空間 //centos7以下不支持
1 2 3 4 5 6 7 8 |
[root@magedu ~] # ip netns help
Usage: ip netns list // 列出netns
ip netns add NAME // 添加netns
ip netns delete NAME // 刪除netns
ip netns identify PID
ip netns pids NAME
ip netns exec NAME cmd ... // 在指定的netns中運行命令
ip netns monitor
|
添加一個叫firstnet的虛擬化網絡,並把eth0移動到此網絡中,查看虛擬化網絡信息
1 2 3 4 5 6 7 8 9 |
[root@magedu ~] # ip netns add firstnet
[root@magedu ~] # ip netns
firstnet
[root@magedu ~] # ip link set eth0 netns firstnet
[root@magedu ~] # ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link /loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link /ether 00:0c:29:7c:7e:0b brd ff:ff:ff:ff:ff:ff
|
查看虛擬化網絡信息:
1 2 3 4 5 |
[root@magedu ~] # ip netns exec firstnet ip link show
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT
link /loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
3: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
link /ether 00:0c:29:7c:7e:15 brd ff:ff:ff:ff:ff:ff
|
刪除虛擬化網絡: //刪除後eth0可以再物理地址查到
1 |
[root@magedu ~] # ip netns add firstnet
|
ip addr:顯示網卡信息(包括IP)
ip addr show:顯示網卡信息
ip addr add IPADDR dev ethX :添加IP
ip addr del IPADDR dev ethX:刪除IP
1 2 3 4 5 6 7 |
[root@magedu ~] # ip addr show
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link /ether 00:0c:29:7c:7e:0b brd ff:ff:ff:ff:ff:ff
inet 172.18.254.97 /16 brd 172.18.255.255 scope global eno16777728
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe7c:7e0b /64 scope link
valid_lft forever preferred_lft forever
|
添加一個IP:
1 2 3 4 5 6 7 8 9 10 |
[root@magedu ~] # ip addr add 192.168.1.100/24 dev eno33554960
[root@magedu ~] # ip addr
3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link /ether 00:0c:29:7c:7e:15 brd ff:ff:ff:ff:ff:ff
inet 172.18.252.96 /16 brd 172.18.255.255 scope global dynamic eno33554960
valid_lft 83229sec preferred_lft 83229sec
inet 192.168.1.100 /24 scope global eno33554960
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe7c:7e15 /64 scope link
valid_lft forever preferred_lft forever
|
刪除一個IP:
1 |
[root@magedu ~] # ip addr del 192.168.1.100/24 dev eno33554960
|
或者可以清空一個網卡的ip:
ip addr flush dev ethX
ip route: 實現路由表管理
ip route add:添加路由
ip route del:刪除路由
ip route show:顯示路由
ip route flush :清空路由
用法: ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]
[ 目標地址 ] [下一跳] [指定源地址]
1 2 3 |
[root@magedu ~] # ip route add 192.168.1.0/24 via 172.18.0.1 dev eno33554960
[root@magedu ~] # ip route list
192.168.1.0 /24 via 172.18.0.1 dev eno33554960
|
指定網卡上的哪個ip:
1 2 3 4 5 |
[root@magedu ~] # ip addr add 172.18.254.100/16 dev eno33554960
[root@magedu ~] # ip addr show
inet 172.18.252.96 /16 brd 172.18.255.255 scope global dynamic eno33554960
valid_lft 81531sec preferred_lft 81531sec
inet 172.18.254.100 /16 scope global secondary eno33554960
|
1 2 3 |
[root@magedu ~] # ip route add 10.0.0.0/8 via 172.18.0.1 dev eno33554960 src 172.18.254.100
[root@magedu ~] # ip route show
10.0.0.0 /24 via 172.18.0.1 dev eno33554960 src 172.18.254.100
|
刪除路由:
1 |
[root@magedu ~] # ip route del 10.0.0.0/24
|
清空路由表: 需指明具體範圍
1 |
[root@magedu ~] # ip route flush 172.18/16
|
ss命令: 取代netstat命令
ss [option] [FILTER]
選項:
-t:顯示tcp協議的相關的連接
-u:顯示udp協議的相關連接
-w:顯示raw socket(套接字)的相關連接
-l:顯示正在監聽的相關連接
-a:顯示所有連接
-n:以數字形式顯示IP和端口
-p: 顯示相關的進程和PID
-m:內存用量
-o:計時器信息
ss還有過濾的功能:
1 2 3 |
[root@magedu ~] # ss -tan state established //指明已建立連接的
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 52 172.18.254.97:22 172.18.252.65:50817
|
2、文件配置
通過修改配置文件來配置IP:
第一種方法:
centos6可以在命令行輸入setup或者system-config-network,通過圖形界面來配置IP。
centos7可以在命令行輸入nmtui,通過圖形界面來配置IP。
第二種方法:
修改/etc/sysconfig/network-scripts/ifcfg-ethX文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[root@magedu network-scripts] # cat ifcfg-eno16777728
TYPE=Ethernet // 設備類型
BOOTPROTO=static // 激活此設備時用什麽協議來配置接口屬性,有DHCP.BOOTP.Static.non
DEFROUTE= yes // 默認路由
PEERDNS= yes // 如果用DHCP協議,是否允許DHCP Server分配的dns來覆蓋本地手動指定的DN
IPV6INIT= yes // 是否初始化ipv6
NAME=eno16777728 // 設備別名
UUID=7d317209-c3a3-40c6-948c-08e9ecfbd5cb // 設備的唯一標識
DEVICE=eno16777728 // 設備名稱
ONBOOT= yes // 是否開機啟動
IPADDR= //IP 地址
NETMASK= // 子網掩碼
GATEWAY= // 網關
DNS1= // 定義DNS
DOMAIN= // 定義DNS域
USERCTL=no // 是否允許普通用戶控制此設備
NM_CONTROLLED=no // 是否使用NetworkManager服務來控制接口 /不建議開啟
|
修改完後重啟network服務: 此方式配置的IP地址永久有效
centos6:service network restart
centos7:systemctl restart network.service
路由配置文件:
在/etc/sysconfig/network-scripts/route-ethX
支持兩種配置方式,但不可混用
1、每行一個路由條目
target via gw
1 2 3 4 5 |
[root@magedu network-scripts] # vim ifcfg-eno33554960
[root@magedu network-scripts] # cat route-eno33554960
192.168.0.0 /24 via 172.18.0.1
[root@magedu network-scripts] # ip route show
192.168.0.0 /24 via 172.18.0.1 dev eno33554960 proto static metric 100
|
2、每三行一個路由條目:#表示數字,可以寫多組路由條目
ADDRESS#=target
NETMASK#=mask
GATEWAY#=nexthop
1 2 3 4 5 6 |
[root@magedu network-scripts] # cat route-eno33554960
ADDRESS0=10.0.0.0
NETMASK0=255.0.0.0
GATEWAY0=172.18.0.1
[root@magedu network-scripts] # ip route show
10.0.0.0 /8 via 172.18.0.1 dev eno33554960 proto static metric 100
|
(轉)linux配置網卡的命令