Ubuntu网络基础运维


声明:这是我在大学毕业后进入第二家互联网公司学习的内容


背景

公司由于历史原因,很多服务器和同事的服务器都是安装的Ubuntu,有16.04也有18.04,每个版本差异比较大,这期先总结下网络方面的运维技术

安装网络运维软件包

如果你是最小化安装,你需要额外装一些软件包

  • traceroute 链路追踪
  • net-tools NET-3网络分发的基础包(包括 arp, hostname, ifconfig, netstat, rarp, route, plipconfig, slattach, mii-tool and iptunnel and ipmaddr)
  • telnet 测试IP:端口是否能访问

安装命令

sudo apt install -y traceroute net-tools telnet

如果出现nothing to do则需要更新apt源

sudo apt update

查看网络信息

ip add
ifconfig
nmcli device show 

网络配置

16.04 server

配置文件 /etc/network/interfaces

sudo vim /etc/network/interfaces 
auto ens33 网卡名字
#iface ens33 inet dhcp动态的获取IP地址
iface ens33 inet static 静态的获取IP地址
address 192.168.1.100 设置IP地址
gateway 192.168.1.1 设置网关
netmask 255.255.255.0 设置子网掩码
dns-nameserver 8.8.8.8 设置DNS,域名解析

运维命令

sudo systemctl start networking 启动网卡服务
sudo systemctl stop  networking 关闭网卡服务
sudo systemctl restart networking 重启网卡服务

18.04 server

配置文件 /etc/netplan/下的一个yaml文件,名字可能各不相同

sudo vim /etc/netplan/50-cloud-init.yaml
# Let NetworkManager manage all devices on this system
network:
  version: 2
 # renderer: NetworkManager
  ethernets:
     ens33: #配置的网卡名称,使用ifconfig  查看得到,且必须是空格缩进,netplan只认空格
       dhcp4: no #no-dhcp4关闭 true-dhcp4开启
       addresses: [192.168.1.100/24, ] 
       gateway4: 192.168.1.1 #设置ipv4的默认网关
       nameservers:  #设置DNS服务器
         addresses: [114.114.114.114,8.8.8.8]  #多个DNS服务器之间用逗号隔开

注意几个点

  • 修改权限必须为root
  • 将/etc/netplan/01-network-manager-all.yaml文件中的renderer: NetworkManager注释,否则netplan命令无法生效
  • IP配置信息要按如上格式,使用yaml语法格式,每个配置项使用空格缩进表示层级
  • 对应配置项后跟着冒号,之后要接个空格,否则netplan命令也会报错

运维命令

sudo netplan apply 应用网卡服务

desktop

NetworkManager工具是Ubuntu桌面版的GUI设置工具。

这个工具推荐直接在GUI上操作,不建议用命令行进行管理,比如Wifi这些配置等。

当然,这个工具能带有命令行工具:nmcli,如果使用了NetworkManager进行配置网络,那么IP、网关、DNS都可以通过这个工具进行查询。

如果配置了命令行的网络设置,那么NetworkManager就会失效

你的所有连接信息都在/etc/NetworkManager/system-connections下

运维命令

sudo systemctl start NetworkManager.service
sudo systemctl sttop NetworkManager.service

DNS配置

临时添加

sudo vim /etc/resolv.conf
添加 nameserver dns服务器的ip
eg:nameserver 114.114.114.114

永久添加

1.修改对应ubuntu版本的网络配置,上面已经说过,这里不在叙述
2.sudo vim /etc/hosts
直接加域名解析的地址,格式为: IP  域名
eg:192.168.10.1    baidu.com
保存后,你访问baidu.com就是访问192.168.10.1了

刷新dns

16.04
sudo systemd-resolve --statistics

18.04 server
sudo systemd-resolve --flush-caches


sudo /etc/init.d/dns-clean start

查看域名解析

sudo apt install dnsutils
dig -v
dig www.baidu.com
nslookup www.baidu.com

route 查看路由表

route

ss/netstat 查看端口

ss -lnt
netstat -nap

ping 测试主机通信

ping IP/域名

ICMP全称为 Internet 控制报文协议(Internet Control Message Protocol)。它是一种面向无连接的协议,属于TCP/IP协议中的网络层

ping 命令会发送一份ICMP回显请求报文给目标主机,并等待目标主机返回ICMP回显应答。因为ICMP协议会要求目标主机在收到消息之后,必须返回ICMP应答消息给源主机,如果源主机在一定时间内收到了目标主机的应答,则表明两台主机之间网络是可达的。

但是Ping不通并不一定代表网络不通。ping是基于ICMP协议的命令,就是你发出去一个数据包,对方收到后返给你一个!就好比声纳。这个协议是可以禁止的!禁止后,如果你ping对方,对方收到后就不回馈给你,这样你就显示无法ping通,但实际你们还是连着的!

telnet 测试IP/域名:端口是否通信

telnet IP/域名:端口

# 测试192.168.20.150的443端口是否开放
telnet 192.168.20.150 443
Trying 192.168.20.150...

一直trying则说明不行


telnet 192.168.20.150 80
Trying 192.168.20.150...
Connected to 192.168.20.150.
Escape character is '^]'.

成功

telnet是OSI模型中基于TCP协议之上应用层的一种协议,是一个通过创建虚拟终端提供连接到远程主机终端仿真的TCP/IP协议。

现在telnet用于测试IP:端口的通信较多,本质上telnet是登陆服务器的!服务没禁止就能登陆,一般来说会比ping更容易测试主机之间的通信问题(端口通信)

traceroute链路追踪

traceroute ip 

最原汁原味的配置网络信息

#设置IP和子网掩码
sudo ifconfig ens33 192.168.20.100 netmask 255.255.255.0
#设置网关
sudo route add default gw 192.168.20.1
#设置DNS
sudo echo "nameserver 192.168.20.1" >> /etc/resolv.conf

问题梳理

关于desktop的网络配置

在Desktop版本中,除了可以修改 /etc/network/interfaces 来进行配置以外;还可以直接在network-manager中配置。通过 interfaces修改的方法参照Server版本。network-manager的配置和直观,按照提示一步一步操作即可,有兴趣的朋友,可以自行Google或者Baidu。

但如果修改了interfaces,又配置了network-manager(以下简称nm),你就会发现出现了一些莫名其妙的问题:

1,interfaces和 nm中的网络设置不一样,系统实际的IP是哪个?

2,有时候莫名其妙的,界面右上角的网络连接图标就丢失了。

3,明明在nm中配置了正确的网络设置,为什么就上不了网呢?

其实,我们要知道 interfaces和 nm之间的关系,这些问题就不难解释了。

首先,当系统内没有第三方网络管理工具(比如nm)时,系统默认使用interfaces文件内的参数进行网络配置。(就像Server版本一样)

接着,当系统内安装了 nm之后,nm默认接管了系统的网络配置,使用nm 自己的网络配置参数来进行配置。

但是,如果用户在安装nm之后(Desktop版本默认安装了nm),自己手动修改了interfaces 文件,那nm 就自动停止对系统网络的管理,系统改使用interfaces 文件内的参数进行网络配置。

此时,再去修改nm 内的参数,不影响系统实际的网络配置。若要让nm 内的配置生效,必须重新启用nm 接管系统的网络配置。

现在知道了两者之间的工作关系,再看上面的三个问题:

1,要看nm是否接管,如果没有接管,系统实际的IP设置以interfaces 中的为准。反之,以nm 中的为准。

2,当nm 停止接管的时候,网络连接图标就丢失了。

3,同样是接管的问题。

如果用户希望在Desktop版本中,直接使用interfaces 进行网络配置,那可以关闭network-manager:

sudo systemctl stop network-manager

vim /etc/network/interfaces修改之后

确保/etc/NetworkManager/Network-manager.conf内的managed=false(系统默认是false,但是你更改过的话需要改这里)

如果希望能继续使用nm 来进行网络配置,则需要进行如下操作:

sudo systemctl stop network-manager # 停止 nm服务
sudo rm /var/lib/NetworkManager/NetworkManager.state # 移除nm 的状态文件
sudo vim /etc/NetworkManager/Network-manager.conf # 打开nm 的配置文件(managed=true)
sudo systemctl start network-manager

参考资料

Ubuntu中网络配置interfaces与界面网络配置NetworkManager


版权声明:

原创不易,洗文可耻。除非注明,本博文章均为原创,转载请以链接形式标明本文地址。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值