我是这个网站的新手,如果有什么错误、愚蠢的问题等,我提前向你道歉。
我遇到了一个网络问题,希望有人能帮我解决。我几乎可以肯定这是一个简单的问题。
首先,让我们介绍一下我的网络配置/几何:
------
( ) SRV PC-A PC-B
( ) ╔════════════╤══╗ ╔═══╤═══════════╗ ╔════════════╤══╗
( INTERNET )═══>║ 95.12.34.56│ ║ ║ │192.168.1.1║═══>║ 192.168.1.5│ ║
( ) ╟────────────┘ ║ ║ └───────────╢ ╟────────────┘ ║
( ) ║ ║ ║ ║ ╚═══════════════╝
------ ║ ┌───────────╢ ╟────────────┐ ║
║ │192.168.0.1║═══>║ 192.168.0.4│ ║
╚═══╧═══════════╝ ╚════════════╧══╝
服务车辆和聚糖酶A在 Windows XP Pro SP2 上运行。它们都具有相同的软件包,可执行防火墙、NAT、端口转发和重写。
聚碳酸酯运行 Arch Linux,无需iptables规则,它只使用主机允许和主机拒绝方法。聚碳酸酯还有一个装有 Windows XP Pro SP2 的分区(全新安装,没有其他与系统交互的软件,防火墙已禁用)。
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
聚糖酶A有执行端口转发和重写的规则:
- 端口 3333 => 端口 3306 @ 192.168.1.5;
- 所有 ICMP => 192.168.1.5
现在的行为:
情况 1) 当聚碳酸酯运行 Windows
- 来自聚碳酸酯我可以平来自互联网的 IP、来自 192.168.0.0/24 的 IP 和来自 192.168.1.0/24 网络的 IP
- 如果我启动 MySQL 服务器聚碳酸酯,我可以从服务车辆(指定主机 192.168.0.4 和端口 3333)以及来自聚糖酶A(网络状态显示从 192.168.0.1 建立的连接,此时服务车辆使用端口转发和重写进行连接)
- 来自服务车辆我可以 ping聚碳酸酯
情况 2) 当聚碳酸酯运行 Arch Linux:
-来自聚碳酸酯我可以平来自互联网的 IP、来自 192.168.1.0/24 的 IP 以及仅 192.168.0.4 IP,但不包括来自 192.168.1.0/24 网络的其他 IP
- 如果我在聚碳酸酯, 我不能连接到它服务车辆(指定主机 192.168.0.4 和端口 3333),仅来自聚糖酶A
在进行这些测试时,服务车辆和聚糖酶A无需更改或重新启动或类似操作即可运行。它们可以正确完成工作,并在聚碳酸酯证明这一点。我还用Wireshark进行了数据包检查,数据包被传送到Linux机器。
现在的问题是 Linux 机器出了什么问题?为什么运行 Windows 时一切正常,而运行 Linux 时却不行?
我猜想是缺少了与路由相关的某些东西。
可能系统不知道如何响应源 IP = 192.168.0.1 的数据包(但为什么在这种情况下它可以 ping 192.168.0.4?)。
路由如下:
# ip route show
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.5
default via 192.168.1.1 dev eth0
答案1
您能 ssh 192.168.1.5 吗?您在 host.allow 中允许了 192.168.0.0/24 吗?
192.168.1.1 负责将请求从 192.168.1.5 转发到 192.168.0.0/24,因为根据路由 192.168.1.1 是您的 Linux 机器的网关。