我有 2 个网卡,第二个(IP 地址为 10.1.1.2)连接到专用网络。私有 n/w 上的一台机器(带有 ip 的 Windows,10.1.1.3)能够 ping 这台 Linux 机器。但从这台机器上,我无法 ping 回来。 arping 命令有效。 Traceroute 10.1.1.3 转到 NIC1 的网关。
为了在多次实验后解决这个问题,这是我能做的最好的事情,并希望进一步进行帮助:
managed=true
通过在 /etc/NetworkManager/NetworkManager.conf 中设置“ ”将管理切换到 NetworkManagerDEFROUTE=no
在文件
/etc/NetworkManager/system-connections/Wired connection 2.nmconnection的 [ipv4] 部分下添加2 internal2
在文件 /etc/iproute2/rt_tables 中添加了“ ”ip route add default dev eth1 table internal2
ip rule add from all to 10.1.1.3 lookup internal2 prio 1000
ip route show table main
(见下文)route -n
(见下文)
输出ip route show ...
:
default via 192.168.1.1 dev eth0 proto static metric 100
10.1.1.0/24 dev eth1 proto kernel scope link src 10.1.1.2 metric 101
192.168.116.0/22 dev eth0 proto kernel scope link src 164.99.116.152 metric 100
输出route -n
:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0
10.1.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1
192.168.116.0 0.0.0.0 255.255.252.0 U 100 0 0 eth0
一段时间后,有时我只看到 2 个条目,这意味着添加的条目已被清除:
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0
192.168.116.0 0.0.0.0 255.255.252.0 U 100 0 0 eth0
完成上述操作后,traceroute 和 ping 挂起。一段时间后,当路由表丢失一个条目时,情况又恢复正常。我看到跟踪路由转到默认网关。
我的目标是确保 ping 10.1.1.3 给出结果。在专用网络中,没有网关。
我什至尝试过以下规则,但网络在一段时间后恢复到正常状态:)
ip rule add from all to all lookup internal2 prio 1000
编辑1:添加以下内容cat /etc/NetworkManager/system-connections/Wired\ connection\ 2.nmconnection
:
[connection]
id=Wired connection 2
uuid=de14c2b9-4828-3599-8440-c32d778395ed
type=ethernet
autoconnect-priority=-999
permissions=
timestamp=1597651876
[ethernet]
mac-address=00:0C:29:BB:48:72
mac-address-blacklist=
[ipv4]
address1=10.1.1.2/24
dns-search=
method=auto
DEFROUTE=no
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
ip6-privacy=0
method=auto
编辑2:自我修复后,
ip addr
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 mq state UP group default qlen 1000
link/ether 00:0c:29:bb:48:68 brd ff:ff:ff:ff:ff:ff
inet 192.168.116.152/22 brd 192.168.1.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fda7:e6ee:2e09:0:e444:fc21:ec4b:5dca/64 scope global tentative dynamic noprefixroute
valid_lft 2591999sec preferred_lft 604799sec
inet6 fdfe:9042:c53d:0:181e:7fbb:e3ce:9b9/64 scope global tentative dynamic noprefixroute
valid_lft 2592000sec preferred_lft 604800sec
inet6 fe80::e1dc:c1:89f1:9bd8/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:bb:48:72 brd ff:ff:ff:ff:ff:ff
编辑3:作为最后一步,我已经使用发行版(MX Linux)提供的GUI界面重新创建了IP地址,并且它已经有一段时间了。在自我修复发生之前,这是路由表:
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0
0.0.0.0 10.1.1.2 0.0.0.0 UG 101 0 0 eth1
10.1.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1
192.168.116.0 0.0.0.0 255.255.252.0 U 100 0 0 eth0
我已将网关指定为自身节点地址。一切正常,我能够按照我想要的方式进行 ping 操作。
几分钟后,自我修复发生了,之后又出现了路由表:
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0
192.168.116.0 0.0.0.0 255.255.252.0 U 100 0 0 eth0
ip route
default via 192.168.1.1 dev eth0 proto static metric 100
default via 10.1.1.2 dev eth1 proto static metric 101
10.1.1.0/24 dev eth1 proto kernel scope link src 10.1.1.2 metric 101
192.168.116.0/22 dev eth0 proto kernel scope link src 192.168.116.152 metric 100
编辑4:
按照注释中的建议禁用明显的修复后使用以下命令进行工作:
service network-manager stop
答案1
如果网络正在“恢复”,这可能是 NetworkManager 试图为您做一些事情。我建议完全停止它并使用较低级别的命令来启动两个网络设备。
您需要设置的唯一显式路由是默认路由。
这应该可以让您 ping 专用网络,并在公共网络和互联网上执行所有操作。一旦这个工作正常,问题就变成了如何配置 NetworkManager 来维持这种状态(在那里,我无法帮助你)。
答案2
重新启动几次后,发现即使 NetworkManager 运行,配置也能正常工作。我认为添加 eth1 的 ip 作为网关可能是实际的答案。