常用linux 命令 -网络相关

时间:2022-01-07 16:31:09

此文参考:

1.网络文章,但最后发现源头是在《鸟哥私房菜》,再次感谢原作者;

2.工作中跟同事讨论,自己尝试。

本人水平有限,如有错误,请大家指正,谢谢。

一 网络参数设置命令

 1.ifconfig :查询、设置网卡与IP网段等相关参数

    1.1 man手册定义

    

DESCRIPTION
Ifconfig is used to configure the kernel
-resident network interfaces. It is used at boot time to set up
interfaces as necessary. After that, it is usually only needed when debugging or when system tuning is
needed.

If no arguments are given,
ifconfig displays the status of the currently active interfaces. If a single
interface argument is given, it displays the status of the given interface only;
if a single -a argument
is given, it displays the status of all interfaces, even those that are down. Otherwise, it configures
an interface.

简译: ifconfig 习惯用于配置kernel-resident 网络接口,一般在启动时设置必要的接口。也用于debug和系统调试。

如果没有参数 会列出当前激活(up status)的网络接口

如果接一个网络接口参数(ifconfig eth0),会输出该接口的配置

如果后面参数是-a, 会输出所有的网络接口(up 和down staus的网络接口)

 

1.2 命令输出简述

[root@test_1 net]# ifconfig
eth0 Link encap:Ethernet HWaddr
84:2B:2B:94:F7:7D
inet addr:
192.168.2.241 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::862b:2bff:fe94:f77d
/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:
1500 Metric:1
RX packets:
1546524 errors:0 dropped:0 overruns:0 frame:0
TX packets:
1652650 errors:0 dropped:0 overruns:0 carrier:0
collisions:
0 txqueuelen:1000
RX bytes:
754067360 (719.1 MiB) TX bytes:1474728958 (1.3 GiB)
Interrupt:
18

eth0:
1 Link encap:Ethernet HWaddr 84:2B:2B:94:F7:7D
inet addr:
192.168.2.242 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:
1500 Metric:1
Interrupt:
18

eth0:
2 Link encap:Ethernet HWaddr 84:2B:2B:94:F7:7D
inet addr:
192.168.2.243 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:
1500 Metric:1
Interrupt:
18

lo Link encap:Local Loopback
inet addr:
127.0.0.1 Mask:255.0.0.0
inet6 addr: ::
1/128 Scope:Host
UP LOOPBACK RUNNING MTU:
16436 Metric:1
RX packets:
594 errors:0 dropped:0 overruns:0 frame:0
TX packets:
594 errors:0 dropped:0 overruns:0 carrier:0
collisions:
0 txqueuelen:0
RX bytes:
51885 (50.6 KiB) TX bytes:51885 (50.6 KiB)

。eth0:网卡的代号,也有lo这个loopback。

· HWaddr:网卡的硬件地址,习惯称为MAC。

· inet addr:IPv4的IP地址,后续的Bcase、Mask分别代表的是Broadcast与Netmask。

· inet6 addr:是IPv6的版本的IP,我们没有使用,所以略过。

· RX:那一行代表的是网络由启动到目前为止的数据包接收情况,packets代表数据包数、errors代表数据包发生错误的数量、dropped代表数据包由于有问题而遭丢弃的数量等。

· TX:与RX相反,为网络由启动到目前为止的传送情况。

· collisions:代表数据包碰撞的情况,如果发生太多次,表示你的网络状况不太好。

· txqueuelen:代表用来传输数据的缓冲区的储存长度。

· RX Bytes、TX Bytes:总传送、接收的字节总量。

· Interrupt、Memory:网卡硬件的数据,IRQ岔断与内存地址。

通过观察上述的资料,大致上可以了解到你的网络情况,尤其是RX、TX内的error数量,以及是否发生严重的collision情况,都是需要注意的。

1.3应用 

1.3.1 下面是我给一个网卡配置多个ip地址用的命令

ifconfig eth0:1 192.168.2.242 netmask 255.255.255.0 up &
ifconfig eth0:2 192.168.2.243 netmask 255.255.255.0 up &

PS: 这种配置子系统重启后,会失去,若想系统重启后不丢失,解决方法一:

将该命令添加到rc.local 里 如下后两行

[devtac@test_1 network-scripts]$ more /etc/rc.d/rc.local
#
!/bin/sh
#
# This script will be executed
*after* all the other init scripts.
# You can put your own initialization stuff
in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
xl2tpd
-c /etc/xl2tpd.conf -D &
ifconfig eth0:1 192.168.2.242 netmask 255.255.255.0 up &
ifconfig eth0:2 192.168.2.243 netmask 255.255.255.0 up &

 

2. ifup ifdown

2.1 简述:man 手册里说的很清楚,如下

     

       The  ifup  and  ifdown commands may be used to configure (or, respec- tively, deconfigure) network inter-
faces based on interface definitions
in the files /etc/sysconfig/network and /etc/sysconfig/network-
scripts
/ifcfg-<configuration>

These scripts take one argument normally: the name of the configuration (e.g. eth0). They are called with
a second argument of
"boot" during the boot sequence so that devices that are not meant to be brought up
on boot (ONBOOT
=no, see below) can be ignored at that time.

简译:ifup 和ifdown 命令 用于配置位于/etc/sysconfig/network 和/etc/sysconfig/network-scripts/ifcfg-<configuration> 已经配置过的网卡接口文件 如下两个配置文件

[devtac@test_1 network-scripts]$ pwd
/etc/sysconfig/network-scripts
[devtac@test_1 network
-scripts]$ ll
总用量
204
-rw-r--r--. 1 root root 276 8月 26 14:35 ifcfg-eth0
-rw-r--r--. 1 root root 254 1月 9 2013 ifcfg-lo

通常,该命令会接一个参数。

PS:ifup ifdown 所在位置如下,有兴趣的可以分析下这两个脚本。

[devtac@test_1 network-scripts]$ pwd
/etc/sysconfig/network-scripts
[devtac@test_1 network
-scripts]$ ll ifup ifdown
lrwxrwxrwx.
1 root root 20 8月 26 14:40 ifdown -> ../../../sbin/ifdown
lrwxrwxrwx.
1 root root 18 8月 26 14:40 ifup -> ../../../sbin/ifup

2.2脚本阅读。。。需要时间~~~或者另开。

2.3使用  注:下面例子里因为eth0 已经启动了。大家若是ssh 连接到服务器,请审议ifdown ,网卡停了,就无法连上主机了。。。。

[root@test_1 ~]# ifup eth0
活跃连接状态:激活的
活跃连接路径:
/org/freedesktop/NetworkManager/ActiveConnection/1

 3.route 

3.1 man 手册定义

DESCRIPTION
Route manipulates the kernel’s IP routing tables. Its primary use is to set up static routes to specific
hosts or networks via an interface after it has been configured with the
ifconfig(8) program.

When the add or del options are used, route modifies the routing tables. Without these options, route
displays the current contents of the routing tables.

简译:Route 用于操作 内核IP的路由表。它的主要作用是设置静态路由,当访问某个特定主机或者网段时通过路由配置的主机 访问。

         当后面接add 或者del 命令时 ,修改路由规则;没有add 或者del 时 列出当前路由表。

3.2 命令参数详解

[root@linux ~]# route [-nee]
[root@linux
~]# route add [-net|-host] [网段或主机] netmask [mask] [gw|dev]
[root@linux
~]# route del [-net|-host] [网段或主机] netmask [mask] [gw|dev]
观察的参数:
-n,不要使用通信协议或主机名称,直接使用 IP 或 Port Number;
-ee,使用更详细的信息来显示;
增加 (add) 与删除 (del) 路由的相关参数;
-net,表示后面接的路由为一个网段;
-host,表示后面接的为连接到单台主机的路由;
Netmask,与网段有关,可以设置 netmask 决定网段的大小;
Gw,gateway 的简写,后续接的是 IP 的数值,与 dev 不同;
Dev,如果只是要指定由哪一块网卡联机出去,则使用这个设置,后面接 eth0 等。


 

 3.3 route 命令输出参数解释

[root@test_1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
192.168.200.0 192.168.2.1 255.255.255.0 UG 0 0 0 eth0
192.178.200.0 192.168.2.1 255.255.255.0 UG 0 0 0 eth0
0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
[root@test_1
~]#
[root@test_1
~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 * 255.255.255.0 U 1 0 0 eth0
192.168.200.0 192.168.2.1 255.255.255.0 UG 0 0 0 eth0
192.178.200.0 192.168.2.1 255.255.255.0 UG 0 0 0 eth0
default
192.168.2.1 0.0.0.0 UG 0 0 0 eth0

· Destination、Genmask:这两个术语就分别是Network与Netmask了。所以这两个东西就组合成为一个完整的网段了。

· Gateway:该网段是通过哪个Gateway连接出去的?如果显示0.0.0.0表示该路由是直接由本机传送,亦即可以通过局域网的MAC直接传输;如果有显示IP的话,表示该路由需要经过路由器(网关)的帮忙才能够传送出去。

· Flags:总共有多个标记,代表的意义如下。

Ø U(route is up):该路由是启动的。

Ø H(target is a host):目标是一台主机(IP)而非网段。

Ø G(use gateway):需要通过外部的主机来传递数据包。

Ø R(reinstate route for dynamic routing):使用动态路由时,恢复路由信息的标记。

Ø D(dynamically installed by daemon or redirect):已经由服务器或转port功能设置为动态路由。

Ø M(modified from routing daemon or redirect):路由已经被修改了。

Ø!(reject route):这个路由将不会被接受(用来阻止不安全的网段)。

· Iface:这个路由传递数据包的接口。

 3.4 route add del 示例

[root@test_1 ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 * 255.255.255.0 U 1 0 0 eth0
192.168.200.0 192.168.2.1 255.255.255.0 UG 0 0 0 eth0
192.178.200.0 192.168.2.1 255.255.255.0 UG 0 0 0 eth0
default 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
[root@test_1 ~]# route del -net 192.168.200.0 netmask 255.255.255.0 gw 192.168.2.1 dev eth0
[root@test_1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
192.178.200.0 192.168.2.1 255.255.255.0 UG 0 0 0 eth0
0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
[root@test_1 ~]# route add -net 192.168.200.0 netmask 255.255.255.0 gw 192.168.2.1 dev eth0
[root@test_1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
192.168.200.0 192.168.2.1 255.255.255.0 UG 0 0 0 eth0
192.178.200.0 192.168.2.1 255.255.255.0 UG 0 0 0 eth0
0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0

 

   问题:目前我用vpn 访问google,但是如何设置route ,当我访问非www.google.com 时用原先的网络,而访问

www.google.com 时用vpn?

环境:主机 WIN7