配置 linux 网络
配置主机名
修改/etc/hostname 配置文件,永久配置主机名
[root@localhost ~]# vim /etc/hostname
svr7.tedu.cn
[root@localhost ~]# cat /etc/hostname
svr7.tedu.cn
[root@localhost ~]# reboot #重启生效
命令行永久修改主机名
[root@localhost ~]# echo svr7.tedu.cn > /etc/hostname #需要重启生效
[root@localhost ~]# hostname svr7.tedu.cn #可以设置临时主机名,当前生效
配置 IP
修改网卡名
[root@svr7 ~]# vim /etc/default/grub
…
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0 biosdevname=0" #添加 net.ifnames=0 biosdevname=0
…
[root@svr7 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg #重新生成引导文件,使配置文件生效
[root@svr7 ~]# reboot #重启
验证,网卡名是否发生变化
[root@svr7 ~]# ifconfig #有 eth0 网卡
查看网络连接
使用show指令
nmcli connection show
nmcli connection show “连接名”
- 配置 IP 地址
[root@svr7 ~]# nmcli connection show #查看连接名
[root@svr7 ~]# nmcli connection delete ens33 #删除
[root@svr7 ~]# nmcli connection show
NAME UUID TYPE DEVI
virbr0 0ace37a8-f7ad-45d6-9088-00b367999c0b bridge virb
有线连接 1 02cc8558-b41e-3bc4-817b-243ca95c0417 ethernet eth
重新添加网卡
[root@svr7 ~]# nmcli connection delete 有线连接\ 1
[root@svr7 ~]# nmcli connection add type ethernet ifname eth0 con-name eth0 #添加网卡
连接“eth0”(7b47bf24-859e-45f5-ace7-3b9706b61e55) 已成功添加。
[root@svr7 ~]# nmcli connection show
NAME UUID TYPE DEVICE
eth0 7b47bf24-859e-45f5-ace7-3b9706b61e55 ethernet eth0
修改网络连接配置
-
使用modify指令
nmcli connection modify ‘连接名’ 参数1 值1…- 常用参数:
ipv4.method auto | manual
ipv4.addresses ‘IP地址/掩码长度’
ipv4.gateway 网关地址
connection.autoconnect yes | no
- 常用参数:
-
激活/禁用网络连接
使用up/down指令
nmcli connection down "连接名”
nmcli connection up "连接名” -
红帽固定IP地址
#配置IP地址和网关并实现开机自动连接,此处 ip 地址和网关地址要根据自己的虚拟机网络配置来确定 #(参考后面虚拟机网络类型步骤) [root@svr7 ~]# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.10.(5/24) ipv4.gateway 192.168.10.2 connection.autoconnect yes [root@svr7 ~]# nmcli connection up eth0 #激活 eth0 [root@svr7 ~]# ifconfig #查看配置的 IP [root@svr7 ~]# route -n #查看网关
或
#这里更改的是配置文件所以要进行以下操作重启网卡
nmcli c reload
nmcli c up eth0 #nmcli c reload会读取配置文件,但是不会立即生效,接着如果执行nmcli c up X,就会立即生效重启
或执行这两条命令
nmcli d reapply eth0 #更新设备信息,只有在设备处于连接状态,才可以更新设备。更新设备相当于重启连接。
nmcli d connect eth0 #连接设备,如果 ens33 本来就出于连接状态,那此命令会重启 ens160。
这里有很详细的好文章
为本机指定 DNS 服务器
-
配置文件/etc/resolv.conf
关键记录:nameserver DNS服务器地址[root@server0~]# vim /etc/resolv.conf search example.com //默认域后缀 nameserver 172.25.254.254 //设置DNS服务器地址 [root@svr7 ~]# vim /etc/resolv.conf … nameserver 8.8.8.8
- 其中,nameserver 8.8.8.8和nameserver 8.8.4.4表示DNS服务器的IP地址是8.8.8.8和8.8.4.4。这两个地址是Google公共DNS的地址。当你的系统需要解析一个域名时,它会向这些DNS服务器发送请求。因此可以ping baidu.com,而不用ping百度的ip地址。
-
修改指定主机映射文件
- vim /etc/hosts
[root@svr7 ~]# vim /etc/hosts
增加:
192.168.10.5 svr7.tedu.cn
此时 ping 主机名,可以映射到 IP, 请注意:该文件应该到发起 ping 的主机上修改,而不是目标主机(被 ping 方)。
虚拟网络类型
- 桥接模式
Guest.与Host连接到同一个交换机上
通过桥接物理网卡,相当于直连到Host所在网络 - 隔离模式
Guest可访问同一虚拟交换机上的其他Guest
但无法访问Host所在外部网络
请选择 NAT 模式
打开 Vmware 虚拟机,选择菜单中的“虚拟机”的“设置”
再点击编辑,找到虚拟网络编辑器
选择vmnet8 这张网卡,
你的红帽就应该配置到这个 192.168.10.0/24 这个网段,可以配成:192.168.10.5 或者192.168.10.6 以此论推,可以配到 192.168.10.254
你的虚拟网关是多少呢,请点击上图中的 NAT 设置查看:
远程管理 linux 主机
ssh 简介
ssh 概述
服务器托管在IDC机房或者云端?
最有效率的命令行远程控制?
- SSH协议,Secure Shell
为客户机提供安全的Shell环境
默认端口:TCP 22 - OpenSSH服务
服务名称:sshd
主程序:/usr/sbin/sshd、/usr/bin/ssh
配置文件:/etc/ssh/sshd_config、 /etc/ssh/ssh config
克隆
克隆一台新的机器
更改 svr1 虚拟机名字
选择虚拟机 A,右击 管理—>克隆
克隆 A,选择链接克隆成 B。
克隆后的 B 的 IP 会跟 A 一摸一样,此时你必须重新修改 B 的 IP 值,否则会 IP 重复引起冲突,
之后使用 root 用户分别登陆 A 和 B 主机,B 主机更改主机名,IP 地址
[root@svr7 ~]# vim /etc/hostname
pc207.tedu.cn
[root@svr7 ~]# hostname pc207.tedu.cn
以下步骤是让 B 自动获取 IP 的过程,此时假设你的网卡名称是 eth0
[root@svr7 ~]# ping 8.8.8.8 #失败
[root@svr7 ~]# nmcli connection modify eth0 ipv4.method auto connection.autoconnect yes #自动获取 IP
[root@svr7 ~]# nmcli connection up eth0
[root@svr7 ~]# route -n
#测试
[root@svr7 ~]# ping 8.8.8.8 #可以通
[root@svr7 ~]# firefox www.baidu.com #可以访问
如果你想手动修改 ip,可以参照以下命令:
[root@svr7 ~]# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.10.7/24 connection.autoconnect yes #配置IP地址和网关并实现开机自动连接
[root@svr7 ~]# nmcli connection up eth0 #激活 eth0
远程登录工具ssh
ssh [选项]… 服务器
ssh [选项]… 用户名@服务器
ssh [选项]… -l 用户名 服务器
- 指定以对方的用户名登录
[root@svr7~]#ssh zengye@192.168.8.8
zengye@192.168.8.8's password:
/验证用户口令
[zengye@svr1~]#whoami
zengye
- 以客户端当前用户名作为登录名
[root@svr7~]#ssh192.168.8.8
root@192.168.8.8 s password:/验证对方的root▣令
Last login:Fri Aug 30 17:26:45 2014
[root@svr1~]#whoami
root
ssh 命令选项
-p 端口:连接到指定的端口
-X 启用-X 转发,在本机运行对方的图形程序
[root@svr7 ~]# ssh root@192.168.4.207
…
Are you sure you want to continue connecting (yes/no)? yes #第一次远程会让输入 yes
root@192.168.4.207's password: #输入密码
Last login: Wed Jul 8 11:24:37 2020
[root@pc207 ~]# firefox #运行 firefox 图形程序,失败
Error: GDK_BACKEND does not match available displays
退出,使用-X 选项登陆,成功
[root@pc207 ~]# exit
[root@svr7 ~]# ssh -X root@192.168.4.207
root@192.168.4.207's password:
[root@pc207 ~]# firefox
- 修改默认端口,pc207 主机操作
[root@pc207 ~]# vim /etc/ssh/sshd_config
Port 8022
[root@pc207 ~]# systemctl restart sshd.service #重启 sshd 服务,systemctl status sshd.service 查看 sshd 服务状态
切记 selinux 需要是宽松或者禁止状态 setenforce 0
测试:svr7 主机操作,如果测试失败,出现以下问题,请关闭防火墙
[root@svr7 ~]# ssh -p 8022 -X root@192.168.4.207
ssh: connect to host 192.168.4.207 port 8022: No route to host[root@svr7 ~]# systemctl stop firewalld
systemctl disable firewalld
vim /etc/selinux/config
SELINUX=disable 永久关闭 selinux
查看 selinux 状态:getenforce 临时设置 selinux 状态宽松模式:setenforce 0 或 setenforce
permissive 或 disable 关闭。Setenforce 1 或 enforcing 开启强制模式,所有策略生效,这是
selinux 的默认状态。[root@svr7 ~]# ssh -p 8022 -X root@192.168.4.207 #重新测试
root@192.168.4.207's password:
[root@pc207 ~]#
第一次连接 ssh,会在/root/.ssh/know_hosts 文件中记录 ssh 第一次连接,删除后,会初始
化连接。
恢复端口,直接注释更改的文件,重启服务即可
[root@pc207 ~]# vim /etc/ssh/sshd_config
# Port 8022
PermitRootLogin yes #修改该行,表示允许 root 登录
[root@pc207 ~]# systemctl restart sshd
scp 基于 ssh 远程管理,安全复制工具 scp
scp [-r] 用户名@服务器:路径 本地路径
scp [-r] 本地路径 用户名@服务器:路径
scp /路径/源数据(本地文件) root@对方IP地址:/路径/
scp root@对方IP地址:/路径/ /路径/源数据(本地文件)
[root@svr7 ~]# scp -r /boot/ root@192.168.4.207:/opt/ #把本机的boot目录放到207主
机的 opt 下面
[root@svr7 ~]# scp -r root@192.168.4.207:/boot /opt/ #把远程主机的目录 boot 放到
本地 opt 下
[root@svr7 ~]# ls /opt/
远程管理进阶与 xshell
实现 ssh 无密码验证
- 生成公钥与私钥,完成 ssh 无密码验证
A[root@svr7 ~]# ssh-keygen #一路回车
A[root@svr7 ~]# ls /root/.ssh/
- 传递公钥到对方主机
A 将公钥传递给 B
[root@svr7 ~]# ssh-copy-id root@192.168.4.207
…
#A 然后登录对方 B,发现就不用密码了。
[root@svr7 ~]# ssh root@192.168.4.207
#A 把公钥传给 B, A 就能够不用密码登录 B
Windows–>Linux远程访问
- 远程登录工具
Xshell、MobaXterm、.FinalShell、Putty、SecureCRT、…
常用的网络工具
IP 命令的使用
查看 IP 地址
[root@svr7 ~]# ip address show
<BROADCAST,MULTICAST,UP,LOWER_UP>:
BROADCAST 表示该接口支持广播;
MULTICAST 表示该接口支持多播;
UP 表示该网络接口已启用;
LOWER_UP 表示网络电缆已插入,设备已连接至网络
mtu 1500:最大传输单位(数据包大小)为 1,500 字节
qdisc pfifo_fast:用于数据包排队
state UP:网络接口已启用
qlen 1000:传输队列长度
link/ether 00:1e:4f:c8:43:fc:接口的 MAC(硬件)地址
brd ff:ff:ff:ff:ff:ff:广播地址
inet 192.168.0.24/24:IPv4 地址
brd 192.168.0.255:广播地址
scope global:全局有效
dynamic enp0s25:地址是动态分配的
valid_lft forever:IPv4 地址的有效使用期限
preferred_lft forever:IPv4 地址的首选生存期
inet6 fe80::2c8e:1de0:a862:14fd/64:IPv6 地址
scope link:仅在此设备上有效
valid_lft forever:IPv6 地址的有效使用期限
preferred_lft forever:IPv6 地址的首选生存期
添加 IP 地址
[root@svr7 ~]# ip address add 192.168.8.1/24 dev eth0 #会有 8.1 的 IP,但是是临时的
[root@svr7 ~]# ip addr show
[root@svr7 ~]# ping 192.168.8.1 #可以 ping 通
#也可以使用以下命令,临时配置 ip 地址:
[root@svr7 ~]# ifconfig eth0 192.168.10.5/24
#如果想要每次开机生效,可以写/etc/rc.d/rc.local 文件,给个执行的权限
chmod +x /etc/rc.d/rc.local
[root@svr7 ~]# vim /etc/rc.d/rc.local
ip address add 192.168.8.1/24 dev eth0
添加路由
路由是一种机制,通过它,数据包可以从源主机传输到目标主机。路由表是一个指导数据包如何到达目标地址的指南。添加路由就是在路由表中添加新的条目。
[root@svr7 ~]# ip route add 10.0.0.0/24 via 192.168.8.100 dev eth0
[root@svr7 ~]# ip route show #查看路由表
删除路由
[root@svr7 ~]# ip route del 10.0.0.0/24
[root@svr7 ~]# ip route show
网卡配置文件在: /etc/sysconfig/network-scripts/ifcfg-eth0
追踪路由
- traceroute 功能:可以知道从本机到达目标所经过的路由器有哪些(用于追踪数据包从源主机到目标主机的路径)
- 命令格式: traceroute [参数] [主机]
- TTL值:每经过一个路由器减少1
红帽 8 里面没有这条命令,需要先安装 yum -y install traceroute*
也可以用 mtr 这条命令追踪目标(可以是网址,也可以是 IP)
[root@svr7 ~]# traceroute 192.168.4.7
traceroute to 192.168.4.7 (192.168.4.7), 30 hops max, 60 byte packets
1 svr7.tedu.cn (192.168.4.7) 0.043 ms 0.013 ms 0.011 ms
[root@svr7 ~]# traceroute 192.168.4.207
- Windows命令路由跟踪tracert
Windos 双击运行-->cmd-->
C:\Users\Administrator>tracert www.baidu.com
ss 与 netstat
-a 显示所有端口的信息
-n 以数字格式显示端口号
-t 显示 TCP 连接的端口
-u 显示 UDP 连接的端口
-l 显示服务正在监听的端口信息
-p 显示监听端口的服务名称是什么(也就是程序名称)
[root@svr7 ~]# netstat -anptu
[root@svr7 ~]# ss -anptu
[root@svr7 ~]# netstat -anptu |grep :22
[root@svr7 ~]# ss -anptu |grep :22
ping 命令
常用选项:
-c:测试包个数
-i:指定收发信息的间隔时间,默认频率是 1 秒一次
-W:设置等待返回时间,默认等待 3 秒。
[root@svr7 ~]# ping -c 2 192.168.4.7 #ping2 次结束
[root@svr7 ~]# ping -c 2 –i 0.2 –W 1 192.168.4.7 #ping2 次结束,频率是 0.2 秒一次,