1. 网络接口 接口名称是软件,而网卡才是硬件。 1.1 网络接口名称规则 以前CentOS (6及之前) 网络接口被枚举为eth0,eth1,eth2...等,ethernet的简写,服务器为了备份,以防止单点网络故障
1. 网络接口
接口名称是软件,而网卡才是硬件。
1.1 网络接口名称规则
以前CentOS (6及之前) 网络接口被枚举为eth0,eth1,eth2...等,ethernet的简写,服务器为了备份,以防止单点网络故障,支持多个网卡。现在(CentOS 7+)为了区分不同网络,包含了新的名称:
- 开头:
en
是以太网接口,wl
是WLAN接口,ww
是WWAN接口; - 下一个字符表示适配器的类型:
o
表示板载,s
表示支持热插拔,p
表示PCI地理位置; -
x
用于合并MAC地址,默认不使用; - 数字:表示索引、ID或端口
如果无法确定固定名称,将使用传统名称,例如ethN。
网络配置位置:CentOS 7:/etc/sysconfig/network-scripts/ifcfg-ens32
,Ubuntu:/etc/network/interfaces
1.2 NetworkManager服务
安装:yum install NetworkManager
。
CentOS 7中,NetworkManager是网络的主程序,而network是子程序,查看他们的状态:
$ systemctl status NetworkManager
$ systemctl status network
1.3 配置网络的工具
- GUI
- nmtui:其实也是命令行
- nm-connection-editor: network manager connection editor
- 命令行
- nmcli:很少用,太复杂
- VIM: CentOS:
vim /etc/sysconfig/network-scripts/ifcfg-ens32
basil@basil-2020:/etc $ nmcli device
DEVICE TYPE STATE CONNECTION
wlp3s0b1 wifi connected gnocuil-402-2.4G
docker0 bridge connected docker0
enp4s0 ethernet unavailable --
lo loopback unmanaged --
2. 配置网络参数
2.1 配置IP
vim /etc/sysconfig/network-scripts/ifcfg-ens32
,修改后刷新网络即可启用新的配置文件systemctl restart network
-
ONBOOT=yes
:启动,no则是不启动; -
BOOTPROTO=none
:分三种,none
是手动,dhcp
是自动,static
是静态即手动; -
IPADDR=192.168.7.40
:IPv4地址; -
NETMASK=255.255.0.0
:子网掩码; -
GATEWAY=10.18.43.1
:网关,默认路由; -
DNS1=8.8.8.8
:DNS配置,可有多个; -
DNS2=114.114.114.114
:DNS配置,可有多个;
查看网卡信息:
root@localhost:/etc# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp4s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 3c:97:0e:fc:c0:d3 brd ff:ff:ff:ff:ff:ff
3: wlp3s0b1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 1c:3e:84:65:c1:bf brd ff:ff:ff:ff:ff:ff
inet 192.168.7.40/16 brd 192.168.255.255 scope global dynamic noprefixroute wlp3s0b1
valid_lft 31843sec preferred_lft 31843sec
inet6 fd91:5e86:1e26::fba/128 scope global dynamic noprefixroute
valid_lft 31995sec preferred_lft 31995sec
inet6 fd91:5e86:1e26:0:fc2c:8f8c:44af:32b/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::2db8:494:d228:6b72/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:ae:3e:33:24 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
# Ubuntu主机配置
# 配置IP地址
$ sudo ifconfig eth1 inet add 192.168.142.4/24
$ sudo ifconfig eth1 inet6 add 2001::da6/64 # 需要前缀
# 配置默认网关
$ sudo route add default gw 192.168.1.254
2.2 配置主机名
主机名是为了区分计算机,可以通过设置计算机的黑白名单来确定是否可以访问某些服务。
# 1. 查看主机名
$ hostname
root@basil-2020:/etc# hostname
basil-2020
# 2. 配置主机名
# 临时修改
$ hostname localhost
# 下面永久修改,重启生效
$ hostnamectl set-hostname basil.com # 命令方式修改
root@basil-2020:/etc# hostnamectl set-hostname localhost
$ vi /etc/hostname # 配置文件修改
root@basil-2020:/etc# cat /etc/hostname
localhost
2.3 网络测试工具
# 查看所有IP(ifconfig)
$ ip a
# 查看路由,查看网关
$ ip route
root@localhost:~# ip route
default via 192.168.0.254 dev wlp3s0b1 proto dhcp metric 600
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.0.0/16 dev wlp3s0b1 proto kernel scope link src 192.168.7.40 metric 600
# 查看邻居,可以 ping 下
$ ip neigh
root@localhost:~# ip neigh
192.168.0.214 dev wlp3s0b1 lladdr fc:3f:db:c0:aa:c4 STALE
192.168.0.180 dev wlp3s0b1 lladdr 30:e1:71:3e:b0:59 STALE
192.168.0.196 dev wlp3s0b1 lladdr 50:65:f3:5d:6d:44 STALE
192.168.0.254 dev wlp3s0b1 lladdr 00:e0:4c:68:10:9a STALE
192.168.4.193 dev wlp3s0b1 lladdr 66:6e:ed:f9:e6:39 DELAY
fe80::2ac6:8eff:fe18:534f dev wlp3s0b1 lladdr 28:c6:8e:18:53:4f router STALE
fe80::2e0:4cff:fe68:109a dev wlp3s0b1 lladdr 00:e0:4c:68:10:9a router STALE
# ping
$ ping 127.0.0.1 # 测试自己
$ ping www.baidu.com # 测试网络
端口和服务一一对应,端口号有65535个,0-1023是系统的,1024-49151是用户端口,49152-65535是动态端口号。常用端口
# ss: 网络连接状态程序
# t:tcp
# n:数字
# l:list,列出
$ ss -tnl
root@localhost:~# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 511 *:80 *:*
$ netstat
3. 防火墙
3.1 firewall
保护互联网对服务器的影响。
CentOS:
- 永久开启:
systemctl enable firewalld
- 临时开启:
systemctl start firewalld
- 状态查看:
systemctl status firewalld
- 临时关闭:
systemctl stop firewalld
- 永久关闭:
systemctl disable firewalld
,不设置防火墙开机自启。
3.2 SELinux
保护服务器内部程序对内部文件的访问。
CentOS:
- 开启:
vim /etc/selinux/config
,SELINUX=enforcing
,重启生效 - 状态查看:
getenforce
,Permissive放行(0),Disabled关闭,Enforcing开启 - 临时关闭:
setenforce 0
, - 永久关闭:
vim /etc/selinux/config
或者vim /etc/sysconfig/selinux
,SELINUX=disabled
,重启生效
4. SSH
Secure Shell,远程连接,默认端口是22。
数据加密、压缩传输。保证安全、提高传输速度。
$ ssh [-p port] <username>@<remote>
5. SCP
Secure Copy,安全远程拷贝。
# -r:拷贝目录
# scp src dst
# 从远程复制
$ scp [-P port] <username>@<remote>:/path/to/file /path/local/file
# 复制到远程
$ scp [-P port] /path/local/file <username>@<remote>:/path/to/file
免密码登录:远端生成密码保存到本机
# .ssh
# |- known-hosts
$ ssh-keygen # 在remote生成公钥和私钥
$ ls
id_rsa id_rsa.pub known_hosts
# 将id_rsa.pub下载到到local
$ ssh-copy-id username@remote # 拷贝到了local的~/.ssh下面的authenrized_hosts
配置别名:在本机~/.ssh/config
配置
Host alias-name
HostName ip-address
User username
Port 22