[内容] Linux 网卡状态的显示

方法一:ip 命令

# 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:1c:42:c9:3c:81 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.129/24 brd 10.10.10.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fdb2:2c26:f4e4:0:55da:1265:541f:8007/64 scope global temporary dynamic 
       valid_lft 563315sec preferred_lft 44695sec
    inet6 fdb2:2c26:f4e4:0:21c:42ff:fec9:3c81/64 scope global dynamic mngtmpaddr 
       valid_lft 2591846sec preferred_lft 604646sec
    inet6 fe80::21c:42ff:fec9:3c81/64 scope link 
       valid_lft forever preferred_lft forever

或者:

# ip a s
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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:1c:42:c9:3c:81 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.129/24 brd 10.10.10.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fdb2:2c26:f4e4:0:55da:1265:541f:8007/64 scope global temporary dynamic 
       valid_lft 563315sec preferred_lft 44695sec
    inet6 fdb2:2c26:f4e4:0:21c:42ff:fec9:3c81/64 scope global dynamic mngtmpaddr 
       valid_lft 2591846sec preferred_lft 604646sec
    inet6 fe80::21c:42ff:fec9:3c81/64 scope link 
       valid_lft forever preferred_lft forever

或者:

# ip address show
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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:1c:42:c9:3c:81 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.129/24 brd 10.10.10.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fdb2:2c26:f4e4:0:55da:1265:541f:8007/64 scope global temporary dynamic 
       valid_lft 563315sec preferred_lft 44695sec
    inet6 fdb2:2c26:f4e4:0:21c:42ff:fec9:3c81/64 scope global dynamic mngtmpaddr 
       valid_lft 2591846sec preferred_lft 604646sec
    inet6 fe80::21c:42ff:fec9:3c81/64 scope link 
       valid_lft forever preferred_lft forever

方法二:ifconfig 命令

# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.10.10.129  netmask 255.255.255.0  broadcast 10.10.10.255
        inet6 fdb2:2c26:f4e4:0:21c:42ff:fec9:3c81  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::21c:42ff:fec9:3c81  prefixlen 64  scopeid 0x20<link>
        inet6 fdb2:2c26:f4e4:0:55da:1265:541f:8007  prefixlen 64  scopeid 0x0<global>
        ether 00:1c:42:c9:3c:81  txqueuelen 1000  (Ethernet)
        RX packets 698666  bytes 485434755 (462.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 372557  bytes 699406543 (667.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 73792  bytes 394285172 (376.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 73792  bytes 394285172 (376.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

方法三:iwconfig 命令

# iwconfig 
lo        no wireless extensions.

eth0      no wireless extensions.

[步骤] 网络的设置 (在不插网线的情况) (openSUSE & SLES 版)

正文:

方法一:通过 ip 命令实现

1.1 添加 IP 地址

1.1.1 添加 IP 地址
# ip a add 192.168.0.11/24 dev eth0

或者:

# ip a add 192.168.0.11/255.255.255.0 dev eth0

(补充:这里以给 eth0 网卡配置 IP 地址 192.168.0.11/24 为例)

1.1.2 让刚刚添加的 IP 地址生效
# ip link set dev eth0 up

(补充:这里以让 eth0 网卡上的配置生效为例)

1.2 添加网关

# ip route add default via 192.168.0.1

(补充:这里以添加 IP 地址为 192.168.0.1 的网关为例)

1.3 添加路由

# ip route add 10.0.0.0/24 via 192.168.0.254

(补充:这里以添加指向网段 10.0.0.0/24 的流量通过 IP 地址 192.168.0.254 的路由为例)

1.4 删除已有的网络设置

1.4.1 删除已配置的 IP 地址
# ip a del 192.168.0.11 dev eth0

(补充:这里以删除 eth0 网卡上的 IP 地址 192.168.0.11 为例)

1.4.2 删除已配置的网关
# ip route del default via 192.168.0.1

(补充:这以删除已配置的网关 IP 地址 192.168.0.1 为例)

1.4.3 删除已配置的路由
# ip route del 10.0.0.0/24 dev eth0

或者:

# ip route del 192.168.0.254

(补充:这里以删除在 eth0 网卡上指向网段 10.0.0.0/24 的路由或者通过 IP 地址 192.168.0.254 的路由为例)

方法二:通过网卡配置文件实现

2.1 判断 Link detected 参数是 no

# /usr/sbin/ethtool eth0

确保输出结果如下:

......
Link detected: no

否则需要在网卡配置文件中添加以下内容:

......
LINK_REQUIRED='no'

2.2 修改网卡配置文件

# vi /etc/sysconfig/network/ifcfg-eth0

添加以下内容:

BOOTPROTO='static'
IPADDR='192.168.0.10/24'
STARTMODE='auto'


补充:这里以设置
1) 使用静态 IP 地址
2) IP 地址是 192.168.1.5
3) 子网掩码是 24
4) 开机自启
为例

2.3 设置网卡 IP 地址

# vim /etc/sysconfig/network/routes

将全部内容修改如下:

default 192.168.0.1

(补充:这里以设置 192.168.0.1 为网关 IP 地址为例)

步骤四:重新启动网络服务

# service network restart

参考文献:

https://www.suse.com/support/kb/doc/?id=000019764
https://www.suse.com/support/kb/doc/?id=000019454

[命令] Linux 命令 ncat 端口管理

正文:

案例一:连接远处端口

1.1 连接远处的端口

# ncat 192.168.0.1 80

(补充:这里以连接 IP 地址 192.168.0.1 的 80 端口为例)

1.2 通过代理连接远处的端口

# ncat --proxy 10.0.0.1:10000 --proxy-type http 192.168.0.1 22

(补充:这里以通过代理 IP 地址 10.0.0.1 的 10000 端口,代理协议是 http,连接远程 IP 地址 192.168.0.1 的 22 端口为例)

1.3 通过代理连接远处的端口 (需要验证用户名)

# ncat --proxy 10.0.0.1 --proxy-type socks4 --proxy-auth eternalcenter 192.168.0.1 25

(补充:这里以通过代理 IP 地址 10.0.0.1 的 1080 端口,代理协议是 socks4,代理账号是 eternalcenter,连接远程 IP 地址 192.168.0.1 的 25 端口为例)

(注意:socks4 的协议默认使用的端口是 1080)

1.4 通过代理连接远处的端口 (需要验证用户名和密码)

# ncat --proxy 10.0.0.1 --proxy-type socks5 --proxy-auth eternalcenter:123 192.168.0.1 25

(补充:这里以通过代理 IP 地址 10.0.0.1 的 1080 端口,代理协议是 socks5,代理账号是 eternalcenter,代理密码是 123,连接远程 IP 地址 192.168.0.1 的 25 端口为例)

(注意:socks5 的协议默认使用的端口是 1080)

案例二:在本地开启端口

2.1 在本地开启端口

# ncat -l 8080

(补充:这里以在本地开启 8080 端口为例)

2.2 在本地开启指定协议的端口

# ncat -l --proxy-type http localhost 8080

(补充:这里以在本地开启协议是 http 的 8080 端口为例)

2.3 在本地通过某个应用开启端口

# ncat --exec "/bin/bash" -l 8080 --keep-open

(补充:这里以在本地通过 /bin/bash 应用开启 8080 端口为例)

2.4 在本地通过某个应用开启端口 (限制最大连接数)

# ncat --exec "/bin/bash" --max-conns 3 -l 8080 --keep-open

(补充:这里以在本地通过 /bin/bash 应用开启 8080 端口最大连接数为 3 为例)

2.5 在本地通过某个应用开启端口 (限制可访问的源 IP 地址)

# ncat --exec "/bin/bash" -l --allow 192.168.0.0/24 8080 --keep-open

(补充:这里以在本地通过 /bin/bash 应用开启 8080 端口只允许 192.168.0.0/24 访问为例)

案例三:在本地开启代理端口

# ncat --sh-exec "ncat 192.168.0.1 80" -l 8080 --keep-open

(补充:这里以将本地的 8080 端口作为 IP 地址 192.168.0.1 的 80 端口为例,任何访问本地 8080 端口的流量都会指向 IP 地址 192.168.0.1 的 80 端口)

参考文献:

https://www.man7.org/linux/man-pages/man1/ncat.1.html

[排错] 解决虚拟机使用命令 nmcli connection up enp1s0 时报错 Error: Connection activation failed: No suitable device found for this connection (device eth0 not available because profile is not compatible with device (mismatching interface name)). (给网卡配置的静态 IP 地址无法生效)

报错代码:

# nmcli connection up enp1s0 
Error: Connection activation failed: No suitable device found for this connection (device eth0 not available because profile is not compatible with device (mismatching interface name)).

解决方法:

步骤一:在虚拟机管理器上刷新虚拟机网卡的 MAC 地址或者删除原网卡添加一个新网卡

(步骤略)

步骤二:删除 NetworkManager 上所有的网卡配置

2.1 显示目前 NetworkManager 所有的网卡配置

# nmcli connection show

2.2 删除 NetworkManager 上所有的网卡配置

# nmcli connection delete enp1s0
# nmcli connection delete Wired\ connection\ 1 

(补充:这里以删除网卡配置 enp1s0 和 Wired\ connection\ 1 为例)

2.3 确保目前 NetworkManager 没有网卡配置

# nmcli connection show

(注意:确保这条命令输入后没有输出结果)

步骤三:添加新的 NetworkManager 网卡配置

3.1 显示目前的网卡硬件

# nmcli device show

(注意:这里需要记住网卡硬件的名称,因为下个步骤需要使用)

3.2 添加新的 NetworkManager 网卡配置

# nmcli connection add con-name eth0 ifname eth0 type ethernet

(补充:这里以给 eth0 网卡添加个名为 eth0 的 NetworkManager 网卡配置为例)

(注意:这里的 ifname 后面的名称,必须和上个步骤输出命令后显示的网卡硬件名称一致)

3.3 让刚刚添加的 NetworkManager 网卡配置生效

# nmcli device connect eth0

(补充:这里以启动 eth0 网卡为例)

(注意:这里的 eth0 是在上个步骤中使用 con-name 参数配置的网卡配置名)

步骤四:给 NetworkManager 网卡配置设置 IP 地址

4.1 给 NetworkManager 网卡配置设置 IP 地址

# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.100.8/24 ipv4.gateway 192.168.100.1 autoconnect yes ipv4.dns 1.1.1.1

(补充:这里以给 eth0 网卡添加静态 IP 地址 192.168.100.8/24,网关 IP 地址 192.168.100.1,DNS 1.1.1.1 并开机自启为例)

(注意:这里的 eth0 是在前面的步骤中使用 con-name 参数配置的网卡配置名)

4.2 让刚刚配置的 IP 地址生效

# nmcli connection up eth0 

(补充:这里以让 eth0 网卡上配置的 IP 地址生效为例)

(注意:这里的 eth0 是在前面的步骤中使用 con-name 参数配置的网卡配置名)