编辑网络配置文件

今天我学了linux的网络配置。

首先是检查网络的配置,可以确定网络接口、网络地址。

显示当前所有接口的ip地址和子网掩码
ip addr

 

也可以针对某一网卡显示信息,比如第一个网卡,就是eth0

显示第一块网卡的的信息
ip -s link show eth0

 

 

 

发现连接问题后,可以使用ping测试连接性

ping -c3 172.25.25.254

 

针对ip命令的相关参数,我在网上找了一下,附上来,比如-s 是什么意思 link是什么意思 -c3是什么意思

ip命令用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。

语法 ip(选项)(参数) 选项

-V:显示指令版本信息;

-s:输出更详细的信息;

-f:强制使用指定的协议族;

-4:指定使用的网络层协议是IPv4协议;

-6:指定使用的网络层协议是IPv6协议;

-0:输出信息每条记录输出一行,即使内容较多也不换行显示;

-r:显示主机时,不使用IP地址,而使用主机的域名。

-c count是数量,-c3 即发三个ping 包

link  这个参数选项前面不加-  意思是设备硬件的MAC地址,为什么不加- 我也不知道哩 好像是和show或ip一样是个命令吧。我是这样理解的。

 

参数

网络对象:指定要管理的网络对象;

具体操作:对指定的网络对象完成具体操作;

help:显示网络对象支持的操作命令的帮助信息。

来自: http://man.linuxde.net/ip

 

比如我找到的这个博客举的例子:

用ip命令显示网络设备的运行状态

[root@localhost ~]# ip link list

1: lo: <loopback,up,lower_up>mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2: eth0: <broadcast,multicast,up,lower_up>mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:16:3e:00:1e:51 brd ff:ff:ff:ff:ff:ff

3: eth1: <broadcast,multicast,up,lower_up>mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:16:3e:00:1e:52 brd ff:ff:ff:ff:ff:ff

 

显示更加详细的设备信息

[root@localhost ~]# ip -s link list

1: lo: <loopback,up,lower_up>mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 RX: bytes packets errors dropped overrun mcast 5082831 56145 0 0 0 0 TX: bytes packets errors dropped carrier collsns 5082831 56145 0 0 0 0

2: eth0: <broadcast,multicast,up,lower_up>mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:16:3e:00:1e:51 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 3641655380 62027099 0 0 0 0 TX: bytes packets errors dropped carrier collsns 6155236 89160 0 0 0 0

3: eth1: <broadcast,multicast,up,lower_up>mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:16:3e:00:1e:52 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 2562136822 488237847 0 0 0 0 TX: bytes packets errors dropped carrier collsns 3486617396 9691081 0 0 0 0

显示核心路由表

[root@localhost ~]# ip route list

112.124.12.0/22 dev eth1 proto kernel scope link src 112.124.15.130 10.160.0.0/20 dev eth0 proto kernel scope link src 10.160.7.81 192.168.0.0/16 via 10.160.15.247 dev eth0 172.16.0.0/12 via 10.160.15.247 dev eth0 10.0.0.0/8 via 10.160.15.247 dev eth0 default via 112.124.15.247 dev eth1

显示邻居表

[root@localhost ~]# ip neigh list

112.124.15.247 dev eth1 lladdr 00:00:0c:9f:f3:88 REACHABLE 10.160.15.247 dev eth0 lladdr 00:00:0c:9f:f2:c0 STALE

来自: http://man.linuxde.net/ip

大神们的命令可以通过格式化地,进行表示,我却不知道如何去格式化,更好的显示出来易读性。我要学习的地方很多。

 

其它在检查网络配置中,使用的命令和大神举的例子差不多,用到了 ip addr 显示所有接口的当前ip和掩码,ip -s link show eth0 输出第一块网卡更详细的信息,其中包含了设备的MAC,从这里可以看出link show 和ip一样,是命令。我是这样理解的。 ip route ,显示路由信息。 ping -c3 172.25.25.254 向ip为172.25.25.254 发送3个ping包。

 

有一条奇怪的命令,书上没有说,却直接用了。我也闹不懂这是什么意思。

说是显示本地系统和classroom.example.com这个主机之间的所有跃点,啥子是跃点?可能是翻译的问题。不懂。看下这条奇怪的命令:

$ tracepath classroom.example.com

下面又出现了一条没有说明的命令,这个真的莫名。说是显示本地系统上侦听的TCP套接字: $ ss -lt

 上面这2条命令,不知道要说明什么。

 

下面就学到了用nmcli 配置网络:使用nmcli 和 NetworkManager管理网络设置和设备。我以为nmcli和NetworkManager是2条命令,可是全篇只看到使用nmcli,这里也很困惑。

查看网络信息,如果要只是列出活动的连接,可以在下面命令后面加--active 选项
nmcli con show

 

指定一个设备,查看连接信息:nmcli con show "static-eth0"

显示设备状态和详细信息:nmcli dev status  

显示指定设备状态和详细信息:nmcli dev show eth0

 

下面就形如创建网络连接,使用nmcli命令

书上说:nmcli 创建网络连接时,参数的顺序很重要,首先是共用参数,必须包含类型接口。其次指定任何与类型相关的参数,最后指定IP地址前缀和网关信息。还说可以为一个设备指定多个IP。其它的设置比如DNS可以在连接建立好后,再个修改。

 

例子1:定义一个名为"default"的新连接,使用DHCP通过eth0网卡用以太网的连接方式自动连接,# nmcli con add con-name "default" type ethernet ifname eth0

例子2:建立一个名为"static"的连接,指定IP和网关,不要自动连接。 # nmcli con add con-name "static" ifname eth0 autoconnect no type ethernet ip4 172.25.25.254/24 gw172.25.25.254 这条命令我基本能看懂,就是不知道gw是什么意思,我也不知道去哪里找,man nmcli 也没有找到。gw是什么意思,看上去像DNS或者是其它意思吧。/24是指1后面有24个0,掩码的意思。

下面就是在系统启动时把“通过DHCP自动连接”更改为静态连接,可能设置好ip4,激活一下,就算静态连接了,不过看到有的教程说,系统启动有效,需要更改配置文件。不说了,先把这条命令写出来过# nmcli con up "static"

附一下网上找到的配置文件目录:

网络配置文件:
/etc/sysconfig/network    说是全局设置,默认里面啥也没有,可以添加全局默认网关
/etc/hostname              用nmtui修改hostname后,主机名保存在这里
/etc/resolv.conf             保存DNS设置,不需要手工改,nmtui里面设置的DNS会出现在这里
/etc/sysconfig/network-scripts/       连接配置信息 ifcfg 文件
/etc/NetworkManager/system-connections/  VPN、移动宽带、PPPoE连接

书上又说,再改回DHCP连接: # nmcli con up "default"  , 这是上面2个例子的练习,学的有点懵懂。没有基础真是太难了。

书上有个提示说如果静态连接丢失,默认连接会自动连接上去。防止自动连接的方法是,用管理员身份,禁用某一接口:nmcli dev disconnect DEVICENAME,还有些wifi类型、网桥啥子的类型,可以用nmcli con add help来查看类型的选择。上面的例子只用到了以太网。

 

下面就进入了另一个练习场景:

通过nmcli修改网络接口:

用到了nmcli con mod

用nmcli con show "[ID]" 查看连接的列表

比如查看static的连接列表,#nmcli con show "static"

例子:

关闭自动连接: # nmcli con mod "static" connection.autoconnect no

指定DNS服务器: # nmcli con mod "static" ipv4.dns 172.25.25.254

书上提到说可以用+/-来增加或删除一些配置参数值。比如增加一条辅助的DNS

nmcli con mod "static" +ipv4.dns 8.8.8.8

 

替换静态IP和网关

# nmcli con mod "static" ipv4.addresses 172.25.25.10/24 172.25.25.254" 这条命令可能是把前面的换成后面,就是后面的172.25.25.254被覆盖了吧。书上没写,我在实验中,试了,也没闹清楚。

后面又增加了一条没有网关的辅助IP  . # nmcli con mod "static" +ipv4.addresses 10.10.10.10/16

 

保存一,要激活一下连接,才能使用。 # nmcli con up "static"

 

下面列一个nmcli的命令摘要

nmcli dev status  列出所有设备
nmcli con show  列出所有连接
nmcli con up "<ID>" 激活连接
nmcli con down "<ID>" 取消激活连接,如果自动重新连接值:yes,则连接将重新启动。重新启动就是重新连接吧,也就是说要取消连接,先保证配置文件值为no,在哪个文件修改不知道,使用nmcli con mod "<ID>" connection.autoconnect no  应当可以吧,有空我再问问百度
nmcli dev dis <DEV> 中断接口,并且暂时禁用自动连接
nmcli con off ... 禁用所有管理的接口
nmcli con add ... 添加新连接
nmcli con mod "<ID>"... 修改连接
nmcli con del "<ID>" 删除连接

 

 说了半天,后面又说,可以图形化编辑。进入图形化编辑命令是:nm-connection-editor

不懂这本书的作者要表述什么。难道我遇到大坑神了???!

 

posted @ 2016-05-19 14:19  zhg1016  阅读(738)  评论(0编辑  收藏  举报