步骤七:测试内部 MASQ 客户端到外部 MASQ 服务器的连接性
从一台内部 MASQ 计算机,ping 在上述步骤五中获得的 MASQ 服务器的外部 TCP/IP 地址。这个地址可能是你的以太网、PPP 等接口的地址,它最终是连接到你的 ISP 的地址。这个 ping 测试将证明 Linux 地址伪装(特别是 ICMP 地址伪装)和 IP 转发正在工作。
如果一切正常工作,输出应该看起来像下面这样(按 Control-C 中止 ping)
------------------------------------- masq-client# ping 12.13.14.15 PING 12.13.14.15 (12.13.14.15): 56 data bytes 64 bytes from 12.13.14.15: icmp_seq=0 ttl=255 time=0.8 ms 64 bytes from 12.13.14.15: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 12.13.14.15: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 12.13.14.15: icmp_seq=3 ttl=255 time=0.5 ms ^C --- 12.13.14.15 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.8 ms ------------------------------------- |
如果这个测试不起作用,首先确保 MASQ 计算机上的“默认网关”指向 MASQ 服务器内部网卡的 IP 地址。 还要再次检查 /etc/rc.d/rc.firewall-* 脚本是否在没有任何错误的情况下运行。 作为一个测试,现在尝试重新运行 /etc/rc.d/rc.firewall-* 脚本,看看它是否运行正常。 另外,虽然大多数内核默认支持它,但请确保你在内核配置中启用了“ICMP Masquerading”,并在你的 /etc/rc.d/rc.firewall-* 脚本中启用了“IP Forwarding”。
如果你仍然无法使其工作,请查看在 Linux MASQ 服务器上运行以下命令的输出
“ifconfig”:确保你的互联网连接的接口(无论是 ppp0、eth0 等)已启动 (UP),并且你拥有正确的互联网连接 IP 地址。上面步骤五显示了此输出的示例。
“netstat -rn”:确保你的默认网关(“Gateway”列中带有 IP 地址的列)已设置。此输出的示例可能如下所示
------------------------------------- masq-server# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.0.1 0.0.0.0 255.255.255.255 UH 0 16384 0 eth1 12.13.14.15 0.0.0.0 255.255.255.255 UH 0 16384 0 eth0 12.13.14.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 127.0.0.0 0.0.0.0 255.0.0.0 U 0 16384 0 lo 0.0.0.0 12.13.14.1 0.0.0.0 UG 0 16384 0 eth0 ------------------------------------- |
“cat /proc/sys/net/ipv4/ip_forward”:确保它显示“1”,以便启用 Linux 转发
对于 2.2.x 用户,运行命令“/sbin/ipchains -n -L”,对于 2.0.x 用户,运行命令“/sbin/ipfwadm -F -l”。 具体来说,查看 FORWARDing 部分,以确保你已启用 MASQ。 使用 SIMPLE rc.firewall-* 规则集的用户的 IPCHAINS 输出示例可能如下所示
------------------------------------ . . Chain forward (policy REJECT): target prot opt source destination ports MASQ all ------ 192.168.0.0/24 0.0.0.0/0 n/a ACCEPT all ----l- 0.0.0.0/0 0.0.0.0/0 n/a . . ------------------------------------ |