标签: nat

使用 Ubuntu 14.04 作为带有 iptables 的路由器,客户端无法上网。可能是 DNS 问题,需要 iptables 设置

更正3:解决了!我需要将我部门 VLAN 的官方 DNS 服务器作为 DNS 添加到客户端。

我已经阅读了大量关于使用 Linux 作为路由器时 iptables 问题的帖子,但没有一个可以帮助我解决以下问题:

我正在我们大学部门设置许多学生工作站,我们在 VLAN 中拥有有限的 IP。工作站需要相互通信并联机。明确地不应从 Internet 访问它们。我想使用以下设置,而不是为每个工作站提供大学 VLAN 中罕见的 IP 之一:

我们有一台运行 Ubuntu 14.04 服务器的服务器,带有 4 个以太网端口(我使用 2 个进行此设置)。

第一个端口是 em1,与所有工作站一起插入 L2 交换机。

第二个端口是 em2 并插入大学 VLAN。

首先是问题,然后是我的设置:

  1. 我可以通过网络上的 ssh 访问服务器,我可以从它 ping 8.8.8.8、www.example.com 和局域网中的其他 192.168.99.x 客户端,因此对于该客户端来说一切正常。
  2. 客户端可以互相ping通,也可以ping通8.8.8.8,但不能ping通www.example.com。这就是为什么我认为我需要为 DNS 设置另一个 iptable 设置。在任何浏览器中都一样,我无法解析外部网站。在 Windows 客户端中,网络设置显示到 Internet 的连接,在 Linux 客户端中,诸如 wget 和 apt-get install 之类的东西可以工作。我曾尝试为客户端手动设置 Google DNS 服务器 8.8.8.8 和 8.8.4.4,但无济于事,即使他们可以 ping 它们。(解决办法是使用VLAN的官方DNS)

更正: wget/apt-get 的东西似乎只在某些时候有效。

更正 2:我至少在一个客户端的 DNS 条目之一中有错字,我将在明天尝试其余的条目,然后将其标记为已关闭。

设置等:

我通过取消注释 …

iptables networking routing dns nat

5
推荐指数
0
解决办法
1万
查看次数

访问充当防火墙的 Ubuntu VM 后面的 LAMP 网络服务器

我目前按以下方式设置了两个 VM:

                               /-----------------------\
      /-----------------\      |  Ubuntu VM            |      /---------------\
      |   Workstation   |------|  eth1 : 192.168.0.x   |      |  Web Server   |
      |   192.168.0.x   |      |  eth0 : 169.254.71.x  |------| 169.254.71.x  |
      \-----------------/      |                       |      \---------------/
                               \-----------------------/
Run Code Online (Sandbox Code Playgroud)

我在从本地机器访问 Web 服务器时遇到了一些问题。

ubuntu通过virtualbox配置有2个网卡,第一个设置为内部网络,第二个设置为桥接连接。这给了我一次在 vm 内的两个有线连接,我将第一个(对应于内部网络)设置为“仅本地链接”,第二个设置为自动 DHCP。

网络服务器正在运行交钥匙 linux LAMP os,网络适配器配置为内部网络,网络与 ubuntu 内部网络具有相同的名称。

我已经按照教程(在适当的情况下切换 eth0 和 eth1)使我能够从网络服务器 ping 到外部世界。我可以从网络服务器 ping 到我的本地机器和互联网上的任何网站。

现在我的问题来自试图做上述相反的事情。我一直在努力都无济于事相当长的一段时间,利用资源的开发,如和一对夫妇别人,使我从我的本地机器连接到网络服务器。当我尝试 ping 网络服务器的 169.254.71.x 地址时,它无法连接。

我意识到我的问题可能出在 ubuntu 机器上的 NAT 配置中,或者我的 ubuntu 机器上的端口转发配置中,但我不知道如何解决这些问题。

lamp firewall port-forwarding nat virtualbox-networking

5
推荐指数
1
解决办法
185
查看次数

在 Ubuntu 16.04 上使用 iptables 的 NAT 不起作用

我曾经将 Ubuntu 14.04 trusty 用于我们的 NAT 服务器(构建在 Google Cloud Platform 上),但最近我尝试使用 Ubuntu 16.04 xenial。

我的配置与我在 14.04 中所做的完全相同,但它不能用作 NAT 服务器。唯一的区别是操作系统和库的版本。

配置很简单,在谷歌的文档中有描述:

  1. 允许 IP 转发sudo sysctl -w net.ipv4.ip_forward=1
  2. 配置iptables sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

https://cloud.google.com/compute/docs/networking#natgateway

就是这样。在 Ubuntu 14.04 中,它有效。在 Ubuntu 16.04 中,它没有。

有人可以帮我正确配置它吗?我不知道我错过了什么,也不知道我应该检查什么。

提前致谢!


这是附加信息

在 Ubuntu 14.04 中

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.5 LTS"
$
$ sudo dpkg -l iptables
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name …
Run Code Online (Sandbox Code Playgroud)

iptables networking nat 14.04 16.04

5
推荐指数
2
解决办法
2万
查看次数

一个 NAT 范围内的两个来宾(虚拟机)

我在virtualbox中有两个VM(Ubuntu),我想分配第一个10.0.3.15和另一个10.0.3.14。但是当我将网络类型设置为 NAT 时,网络地址不同,10.0.3.15 和 10.0.4.15。

即使我改变了范围,其中一个在 Ubunutu 中静态地更改为另一个,我也无法 ping 另一个。

我在互联网上找不到任何解决方案!

virtualbox nat

3
推荐指数
1
解决办法
1万
查看次数

iptables 路由设置

我想设置我的 ubuntu 计算机来路由数据包。因此我读过几篇教程,其中总是有很多规则要添加到 iptables 中。

我终于发现,路由数据包所需的唯一规则(假设 iptables 完全为空)如下:

iptables -t nat -A POSTROUTING -o <ext> -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

其中ext是数据包向外发送的网络接口。

我不太明白这条规则的真正作用以及为什么只需要这条规则就能使 IP 转发工作。

iptables networking routing nat

1
推荐指数
1
解决办法
4095
查看次数