1. 程式人生 > >(轉)linux配置網卡的命令

(轉)linux配置網卡的命令

error 無連接 文件配置 flags rom 內存 otp 情況下 face

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配置網卡的命令