本篇寫一些關於 網路相關的基礎命令、配置等。 hostname 1.查看主機名 2.臨時修改主機名 3.永久修改主機名 ifconfig 1.查看已啟用的網路介面信息 :第一塊乙太網卡的名稱。 中的 是`EtherNet s`表示熱插拔插槽上的設備 ,數字 表示插槽編號。 :迴環網路介面, 是`lo ...
本篇寫一些關於Linux
網路相關的基礎命令、配置等。
hostname
1.查看主機名
[root@localhost ~]# hostname
localhost.localdomain
2.臨時修改主機名
[root@localhost ~]# hostname server
[root@localhost ~]# bash
[root@server ~]# hostname
server
[root@server ~]# cat /etc/hostname
localhost.localdomain
[root@server ~]# hostnamectl status
Static hostname: localhost.localdomain
Transient hostname: server
Icon name: computer-vm
Chassis: vm
Machine ID: ec132d04a74d4b7e828b3905a6b83437
Boot ID: 8d0046a6366944b08b3eb7e69b431f6b
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-693.el7.x86_64
Architecture: x86-64
3.永久修改主機名
[root@server ~]# hostnamectl set-hostname client
[root@server ~]# bash
[root@client ~]# hostname
client
[root@client ~]# cat /etc/hostname
client
[root@client ~]# hostnamectl status
Static hostname: client
Icon name: computer-vm
Chassis: vm
Machine ID: ec132d04a74d4b7e828b3905a6b83437
Boot ID: 8d0046a6366944b08b3eb7e69b431f6b
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-693.el7.x86_64
Architecture: x86-64
ifconfig
1.查看已啟用的網路介面信息
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.28.128 netmask 255.255.255.0 broadcast 192.168.28.255
inet6 fe80::605e:3c48:bafd:e550 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:bc:ab:96 txqueuelen 1000 (Ethernet)
RX packets 471 bytes 520023 (507.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 241 bytes 19798 (19.3 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 1 (Local Loopback)
RX packets 68 bytes 5916 (5.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 68 bytes 5916 (5.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:c3:55:5a txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33
:第一塊乙太網卡的名稱。ens33
中的en
是EtherNet
的縮寫,表示網卡類型為乙太網,s
表示熱插拔插槽上的設備hot-plug Slot
,數字33
表示插槽編號。
lo
:迴環網路介面,lo
是loopback
的縮寫,它不代表真正的網路介面,而是一個虛擬的網路介面,其IP
地址預設是127.0.0.1
。迴環地址通常僅用於對本機的網路測試。
virbr0
:虛擬網橋的連接介面,預設為0
號。其作用是連接主機上的虛機網卡提供外網的功能。
2.查看指定的網路介面信息
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.28.129 netmask 255.255.255.0 broadcast 192.168.28.255
inet6 fe80::eb90:4805:2c20:18ac prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:5b:e0:09 txqueuelen 1000 (Ethernet)
RX packets 899 bytes 207777 (202.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 205 bytes 26253 (25.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
inet
:表示網路介面的IP
地址。
netmask
:表示網路介面的子網掩碼。
broadcast
:表示網路介面所在網路的廣播地址。
ether
:表示網路介面的MAC
地址。
3.設置網路介面的IP地址、子網掩碼
ifconfig 介面名 IP地址 [netmask 子網掩碼]
ifconfig 介面名 IP地址[/掩碼長度]
[root@localhost ~]# ifconfig ens33 192.168.100.10 netmask 255.255.255.0
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.10 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::605e:3c48:bafd:e550 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:bc:ab:96 txqueuelen 1000 (Ethernet)
RX packets 626 bytes 562243 (549.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 262 bytes 23344 (22.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
臨時配置,重啟失效。不指定子網掩碼時,將使用
IP
地址所在分類的預設子網掩碼。
4.臨時禁用或者重新激活網卡
- ifconfig 介面名 down
[root@localhost ~]# ifconfig ens33 down
[root@localhost ~]# ifconfig ens33
ens33: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 00:0c:29:bc:ab:96 txqueuelen 1000 (Ethernet)
RX packets 1067 bytes 667057 (651.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 263 bytes 23404 (22.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- ifconfig 介面名 up
[root@localhost ~]# ifconfig ens33 up
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.28.128 netmask 255.255.255.0 broadcast 192.168.28.255
inet6 fe80::605e:3c48:bafd:e550 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:bc:ab:96 txqueuelen 1000 (Ethernet)
RX packets 1078 bytes 668954 (653.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 285 bytes 26835 (26.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
5.設置虛擬網路介面
- ifconfig 介面名:序號 IP地址
[root@localhost ~]# ifconfig ens33:0 192.168.100.10
[root@localhost ~]# ifconfig ens33:0
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.10 netmask 255.255.255.0 broadcast 192.168.100.255
ether 00:0c:29:bc:ab:96 txqueuelen 1000 (Ethernet)
[root@localhost ~]# ifconfig ens33:0 down
route
1.查看當前主機中的路由表信息
-n
:將路由記錄中的地址顯示位數字形式
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
192.168.28.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.28.2 0.0.0.0 UG 100 0 0 ens33
192.168.28.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
2.添加、刪除到指定網段的路由記錄
- route add -net 網段地址 gw IP地址
[root@localhost ~]# route add -net 192.168.100.0/24 gw 192.168.28.1
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.28.2 0.0.0.0 UG 100 0 0 ens33
192.168.28.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.100.0 192.168.28.1 255.255.255.0 UG 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
- route del -net 網段地址
[root@localhost ~]# route del -net 192.168.100.0/24
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.28.2 0.0.0.0 UG 100 0 0 ens33
192.168.28.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
3。添加、刪除預設網關記錄
- route add default gw IP地址
[root@localhost ~]# route add default gw 192.168.28.1
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.28.1 0.0.0.0 UG 0 0 0 ens33
0.0.0.0 192.168.28.2 0.0.0.0 UG 100 0 0 ens33
192.168.28.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
- route del default gw IP地址
[root@localhost ~]# route del default gw 192.168.28.1
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.28.2 0.0.0.0 UG 100 0 0 ens33
192.168.28.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
netstat
- 查看當前的網路連接狀態、路由表、介面統計等信息。
-n
:以數字的形式顯示相關的主機地址、埠等信息。
-t
:查看TCP
傳輸控制協議相關的信息。
-u
:顯示UDP
用戶數據報協議相關的信息。
-a
:顯示當前主機中所有活動的網路連接信息,包括監聽、非監聽狀態的服務埠。
-l
:顯示處於監聽Listening
狀態的網路連接及埠信息。
-p
:顯示與網路連接相關聯的進程號、進程名稱信息,該選項需要root
許可權。
-r
:顯示路由表信息。
[root@localhost ~]# netstat -ntap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1335/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1009/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1012/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1306/master
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::22 :::* LISTEN 1009/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1012/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1306/master
[root@localhost ~]# netstat -nuap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:5353 0.0.0.0:* 578/avahi-daemon: r
udp 0 0 0.0.0.0:12162 0.0.0.0:* 799/dhclient
udp 0 0 192.168.122.1:53 0.0.0.0:* 1335/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 1335/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 799/dhclient
udp 0 0 127.0.0.1:323 0.0.0.0:* 624/chronyd
udp 0 0 0.0.0.0:51570 0.0.0.0:* 578/avahi-daemon: r
udp6 0 0 :::25751 :::* 799/dhclient
udp6 0 0 ::1:323 :::* 624/chronyd
[root@localhost ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default promote.cache-d 0.0.0.0 UG 0 0 0 ens33
192.168.28.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.28.2 0.0.0.0 UG 0 0 0 ens33
192.168.28.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
ping
- 測試網路連通性
[root@localhost ~]# ping -c 4 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.036 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.084 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.085 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.096 ms
--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3009ms
rtt min/avg/max/mdev = 0.036/0.075/0.096/0.023 ms
traceroute
- 跟蹤數據包的路由途徑
[root@localhost ~]# traceroute 127.0.0.1
traceroute to 127.0.0.1 (127.0.0.1), 30 hops max, 60 byte packets
1 localhost (127.0.0.1) 0.040 ms 0.010 ms 0.008 ms
traceroute
命令能夠比ping
命令更加準確地定位網路連接的故障點,因此執行速度會比ping
命令稍慢。在網路測試與排錯過程中,通常會先使用ping
命令測試與目的主機的網路連接,如果發現網路連接有故障,再使用traceroute
命令跟蹤查看是在哪個中間結點存在故障。
nslookup
- 測試 DNS 功能變數名稱解析
[root@localhost ~]# nslookup www.baidu.com
Server: 192.168.28.2
Address: 192.168.28.2#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 183.232.231.174
Name: www.a.shifen.com
Address: 183.232.231.172
ifcfg-*
- 修改網路介面配置文件
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
TYPE
:設置網卡類型,Ethernet
表示乙太網。
BOOTPROTO
:設置網路介面的配置方式,值為static
時表示使用靜態指定的IP
地址,為dhcp
時表示通過DHCP
的方式動態獲取地址。
DEVICE
:設置網路介面的名稱。
ONBOOT
:設置網路介面是否在Linux
操作系統啟動時激活。
IPADDR
:設置網路介面的IP
地址。
NETMASK
:設置網路介面的子網掩碼。
GATEWAY
:設置網路介面的預設網關地址。
- 啟用、禁用單個網路介面配置
[root@localhost ~]# ifdown ens33
Device 'ens33' successfully disconnected.
[root@localhost ~]# ifup ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.10 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::20c:29ff:febc:ab96 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:bc:ab:96 txqueuelen 1000 (Ethernet)
RX packets 5640 bytes 1889047 (1.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 410 bytes 37045 (36.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 重啟網路服務(會先關閉所有的網路介面,再根據配置文件重新啟用所有的網路介面)
[root@localhost ~]# service network restart
Restarting network (via systemctl): [ OK ]
[root@localhost ~]# systemctl restart network
/etc/hosts
- 本地主機映射文件
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
當訪問一個未知的功能變數名稱時,先查找該文件中是否有相應的映射記錄,如果找不到再去向
DNS
伺服器查詢。
/etc/resolv.conf
- 指定為本機提供DNS解析的伺服器地址,最多可以指定
3
個,第3
個後面的會被忽略。
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.28.2
search localdomain
:設置預設的搜索域(功能變數名稱擴展名)。
例如,當訪問主機localhost
時,就相當於訪問localhost.localdomain
。
scp
- 遠程複製
本地 → 對方
[root@localhost ~]# scp /etc/hosts [email protected]:/etc/hosts
The authenticity of host '192.168.28.129 (192.168.28.129)' can't be established.
ECDSA key fingerprint is SHA256:QmZtJT0piBUSkF9P3GfYf3uEogzBWs08sI7j0eBE/cI.
ECDSA key fingerprint is MD5:ef:e6:06:22:8a:0f:24:00:f8:af:a5:59:5b:a2:b8:b1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.28.129' (ECDSA) to the list of known hosts.
[email protected]'s password:
hosts 100% 158 172.5KB/s 00:00
對方 → 本地
[root@localhost ~]# scp [email protected]:/etc/hosts /etc/hosts
[email protected]'s password:
hosts 100% 158 90.5KB/s 00:00