服务器可以从外部访问,但自身无法访问外部

服务器可以从外部访问,但自身无法访问外部

我有一台运行最新版 Ubuntu 的服务器,其中安装了 openvpn 和 apache2。该服务器位于路由器后面的 192.168.1.* LAN 中,路由器可以访问互联网。

本地网络内的机器可以 ping 并访问我的 Ubuntu 服务器上的网络服务器。

互联网上的机器可以 ping 并访问我的 Ubuntu 服务器上的网络服务器。

Ubuntu 服务器本身无法通过命令行 ping 任何内容(内部网络/路由器/互联网中的其他机器)。此外,HTTP/apt-get、DNS 查找等也不起作用。

以下是 iptables:

carl@Server:~/security$ sudo iptables -L -n
链输入(策略接受)
目标 保护 优化 源 目标         

链转发(策略接受)
目标 保护 优化 源 目标         

链输出(策略接受)
目标 保护 优化 源 目标

路线:

carl@Server:~$ route -n
内核 IP 路由表
目标网关 Genmask 标志 指标参考使用 Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
carl@Server:~$ cat /etc/resolv.conf
#...
名称服务器 192.168.1.1
搜索本地域名

另外,禁用/停止 openvpn 并不能解决问题,但会删除内核路由表中的两个 tun0 路由条目。(所以它们不是原因)

答案1

听起来 DNS 可能是问题所在。检查 /etc/resolv.conf 是否包含名称服务器行,例如 nameserver 8.8.8.8 您也可以尝试 ping 8.8.8.8 以查看您是否可以看到该 DNS 服务器,因为只要您的上游设备没有阻止 ping,它就会响应。

答案2

我并没有真正解决这个问题,但这是路由器的问题。

之前我告诉路由器始终将 IP 192.168.1.100 设置为服务器。从那时起,服务器就获得了这个 IP,但互联网停止工作。(我后来注意到了,但我认为这就是原因)。

现在我连接了第二个网络接口,停用了第一个网络接口,然后一切正常。

为了测试,我再次删除了第二个网络接口,更改了第一个网络接口的 MAC 地址,但仍然不起作用。

作为下一个测试步骤,我再次添加了两个 eth,将一个网络适配器连接到 eth0,将原来无法正常工作的网络适配器连接到 eth1。测试 - 无法正常工作。然后,我停用了 eth0 上的新网络适配器(sudo ifdown eth0),然后旧网络适配器是唯一的网络适配器,但现在在 eth1 而不是 eth0 上运行。

现在一切都运行正常。(顺便说一下,网络接口也获得了一个新的 IP 地址,当它一直是 eth0 时,它不会这样做……)

我不知道这里发生了什么事。有人知道吗?

相关内容