爲了linux主機配置網絡,實現網絡通信
配置方式:
靜態指定:
可以有三種指定方式的命令:
一:ifcfg類:ifconfig,route,netstat
二:ip類:link,addr,route,ss,tc
三:編輯配置文件
system-config-network-tui(setup就是調用這個工具)
在centos7中有新的工具來配置
nmcli,nmtui
動態分配:
DHCP:dynamic host configuration protocol
配置網絡接口:
接口命名方式:
centos6:以網卡的MAC地址來表示一個接口名稱,
以太網:eth[0,1,2,...]
ppp聯網:ppp[0,1,2,...]
centos7:是以網卡所在的接口曹來命名網卡名稱的,一次可以做到換網卡但是網卡名不變
ifconfig命令:interface config
ifconfig [interface]
ifconfig -a :顯示所有的網卡
ifconfig eth# [up|down]
ifconfig interface [aftype] options | address ...
#ifconfig interface IP/MASK [up]
#ifconfig interface IP netmask mask
啓用混雜模式選項: [-]promisc 混雜模式表示只要經過本接口的包不論目標地址是不是本接口都進行接收一份並傳遞
ifcfg命令:
ifcfg DEV [[add|del [ADDR[/LEN]] [PEER] | stop]
add - add new address
del - delete address
stop - completely disable IP
ifup、ifdown命令用來開啓或關閉網絡藉口的
ifup|ifdown interface
route命令:
查看:route -n
添加:route add
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
目標:192.168.1.3 網關:172.16.0.1
~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
目標:192.168.0.0 網關:172.16.0.1
~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
默認路由,網關:172.16.0.1
~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
~]# route add default gw 172.16.0.1
刪除:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
目標:192.168.1.3 網關:172.16.0.1
~]# route del -host 192.168.1.3
目標:192.168.0.0 網關:172.16.0.1
~]# route del -net 192.168.0.0 netmask 255.255.255.0
DNS服務器指定
/etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
正解:FQDN-->IP
# dig -t A FQDN
# host -t A FQDN
反解:IP-->FQDN
# dig -x IP
# host -t PTR IP
dig命令:用於追蹤DNS地址解析
dig:不帶參數表示從(。)根開始解析。
dig [@server] [-b address]表示有效的ip地址
[-c class] [-f filename] [-k filename] [-m]表示開啓調試功能
[-p port#] [-q name]指定域名稱 [-t type]指定DNS解析的記錄類型 [-x addr]反解ip地址 [-4]表示使用ipv4 [-6]表示使用ipv6
[name] [type] [class] [queryopt...
netstat工具: Print network connections, routing tables,interface statistics, masquerade connections, and multicast memberships
網絡連接 路由表信息 接口狀態 僞裝連接 組播用戶關係信息
顯示網絡鏈接的參數:
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t: tcp協議相關
-u: udp協議相關
-w: raw socket相關
-l: 處於監聽狀態
-a: 所有狀態
-n: 以數字顯示IP和端口;
-e:擴展格式
-p: 顯示相關進程及PID
常用組合:
-tan, -uan, -tnl, -unl
顯示路由表:
netstat {--route|-r} [--numeric|-n]
-r: 顯示內核路由表
-n: 數字格式
顯示接口統計數據:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
# netstat -i 顯示所有接口的信息
# netstat -I IFACE 顯示某一個接口的信息
ip命令
[root@localhost ~]# rpm -qf `which ip`
iproute-2.6.32-32.el6_5.x86_64
ip - show / manipulate routing, devices, policy rout-ing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | addrlabel | route | rule |
neigh | tunnel | maddr | mroute | monitor }
OPTIONS := { -V[ersion] | -s[tatistics] | -r[esolve]
| -f[amily] { inet | inet6 | ipx | dnet |
link } | -o[neline] }
link OBJECT:
ip link - network device configuration
set
dev IFACE
可設置屬性:
up and down:激活或禁用指定接口;
show
[dev IFACE]:指定接口
[up]:僅顯示處於激活狀態的接口
ip address - protocol address management
ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加地址時指明網卡別名
[scope {global|link|host}]:指明作用域
global: 全局可用;
link: 僅鏈接可用;
host: 本機可用;
[broadcast ADDRESS]:指明廣播地址
ip address show - look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary and secondary]
ip address flush - flush protocol addresses
使用格式同show,清楚網卡的ip地址配置
ip addr flush dev eth0
ip route - routing table management
ip route add
添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主機路由:IP
網絡路由:NETWORK/MASK
添加網關:ip route add defalt via GW dev IFACE
ip route delete
刪除路由:ip route del TARGET
ip route show
ip route flush
[dev IFACE]
[via PREFIX]
ss命令:
格式:ss [OPTION]... [FILTER]
選項:
-t: tcp協議相關
-u: udp協議相關
-w: 裸套接字相關
-x:unix sock相關
-l: listen狀態的連接
-a: 所有
-n: 數字格式
-p: 相關的程序及PID
-e: 擴展的信息
-m:內存用量
-o:計時器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
EXPRESSION:
dport =
sport =
示例:’( dport = :ssh or sport = :ssh )’
tcp的常見狀態:
listen:監聽狀態
established:以建立的正在連接的狀態
FIN_WAIT_1 :
FIN_WAIT_2 :
SYN_SENT :
SYN_RECV :
CLOSED :
linux上的網路配置:修改配置文件
IP、MASK、GW、DNS相關配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相關的配置文件:/etc/sysconfig/network-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE:
DEVICE:此配置文件應用到的設備;
HWADDR:對應的設備的MAC地址;
BOOTPROTO:激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp;
NM_CONTROLLED:NM是NetworkManager的簡寫;此網卡是否接受NM控制;CentOS6建議爲“no”;
ONBOOT:在系統引導時是否激活此設備;
TYPE:接口類型;常見有的Ethernet, Bridge;
UUID:設備的惟一標識;
IPADDR:指明IP地址;
NETMASK:子網掩碼;
GATEWAY: 默認網關;
DNS1:第一個DNS服務器指向;
DNS2:第二個DNS服務器指向;
USERCTL:普通用戶是否可控制此設備;
PEERDNS:如果BOOTPROTO的值爲“dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中;
配置路由信息的配置文件需要手動添加:在/etc/sysconfig/network-scripts/route-IFACE
內容可以有兩種編寫方式:
(1) TARGET via GW
(2) 每三行定義一條路由(#必須是從0開始)
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
centos6上管理網絡管理的兩個腳本是/etc/rc.d/init.d/network或者/etc/rc.d/init.d/networkmanger
但是後者在centos6上的有些不完善,所以在配置網絡腳本時建議禁用此項NM_CONTROLLED="no"
給網卡配置多地址:
ifconfig:
ifconfig IFACE_ALIAS
注意:使用ifconfig給網卡配置多地址,必須制定別名,如eth0:1,另外網卡別名不能使用兌換成【
來引導。
ifconfig eth0:1 172.16.1.111
ip
ip addr add
配置文件:
ifcfg-IFACE_ALIAS
DEVICE=IFACE_ALIAS
注意:網關別名不能使用dhcp協議引導;
Linux網絡屬性配置的tui(text user interface):
system-config-network-tui
也可以使用setup找到;
注意:記得重啓網絡服務方能生效;
配置當前主機的主機名:
hostname [HOSTNAME]
或者修改配置文件
/etc/sysconfig/network
HOSTNAME=
網絡接口識別並命名相關的udev配置文件:
修改網卡名稱/etc/udev/rules.d/70-persistent-net.rules的配置
注意:修改這個不會立即生效,要想立即生效可以先拆除網卡驅動然後重新裝載網卡驅動即可。
centos7網絡屬性配置:
可預測功能的命名方式:
udev支持不同的命名方式:
Firmware :指主板上的固件信息
拓撲結構:接口的拓撲信息
(1) 網卡命名機制
systemd對網絡設備的命名方式:
(a) 如果Firmware或BIOS爲主板上集成的設備提供的索引信息可用,且可預測則根據此索引進行命名,例如eno1;
(b) 如果Firmware或BIOS爲PCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引進行命名,例如ens1;
(c) 如果硬件接口的物理位置信息可用,則根據此信息進行命名,例如enp2s0;
(d) 如果用戶顯式啓動,也可根據MAC地址進行命名,enx2387a1dc56;
(e) 上述均不可用時,則使用傳統命名機制;
上述命名機制中,有的需要biosdevname程序的參與;
(2) 名稱組成格式
en: ethernet
wl: wlan
ww: wwan
名稱類型:
o<index>: 集成設備的設備索引號;
s<slot>: 擴展槽的索引號;
x<MAC>: 基於MAC地址的命名;
p<bus>s<slot>: enp2s1 是根據pci總線的插槽位置來命名的
網卡設備的命名過程:
第一步:
udev, 輔助工具程序/lib/udev/rename_device, /usr/lib/udev/rules.d/60-net.rules
第二步:
biosdevname 會根據/usr/lib/udev/rules.d/71-biosdevname.rules
第三步:
通過檢測網絡接口設備,根據/usr/lib/udev/rules.d/75-net-description
ID_NET_NAME_ONBOARD, ID_NET_NAME_SLOT, ID_NET_NAME_PATH
迴歸傳統命名方式:
(1) 編輯/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"
(2) 爲grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
(3) 重啓系統
地址配置工具:nmcli(此工具功能太強大,不好掌握,版本之間有很多區別,建議使用nmtui工具)
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { general | networking | radio | connection | device | agent }
radio - get or set radio switch states
wifi [ on | off ]
wwan [ on | off ]
wimax [ on | off ]
all [ on | off ]
networking - get or set general networking state of NetworkManager
[ on | off | connectivity
general - general NetworkManager status and operations
status | hostname | permissions | log‐ging
connection - start, stop, and manage network connec‐ tions
show | up | down | add | edit | modify| delete | reload | load
device - show and manage network interfaces
{ status | show | connect | disconnect | delete | wifi }
例:
如何修改IP地址等屬性:
#nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.method //利用這個配置的地址會立即生效的
manual表示手動修改,dhcp表示dhcp自動獲取
注意:nmcli 修改ip地址後可能不會立即生效,
nmcli con mod eth0 +ipv4.addr 172.16.1.110
nmcli con down eth0;nmcli con up eth0
nmcli conn modify eth0 -ipv4.addresses 172.16.1.110
nmcli con down eth0;nmcli con up eth0
centos7上重啓網絡服務:
systemctl restart NetWorkManger或者 systemctl restart network
nmtui工具是nmcli命令的圖形界面工具,可以實現在圖形化界面配置網絡地址
nmap命令:
nmap [Network Mapper ] 是Linux,Free BSD,UNIX,Windows下的網絡掃描和嗅探工具包,其基本功能有三個,一是探測一組主機是否在線;其次是掃描 主機端口。
此命令由nmap.x86_64 2:6.40-4.el7包提供
此包提供了另一個命令nping
nping - Network packet generation tool / ping utility
例:
nping -c 1 --tcp -p 80,433 scanme.nmap.org google.com