Big*_*uge 6 iptables internet interface dnsmasq ip-forward
我按照这些说明设置了与 iptables 的共享互联网连接。具体来说,我:
在 /etc/network/interfaces 中为我的第二个 NIC 添加了一个网络接口,如下所示:
auto eth1
iface eth1 inet static
address 192.168.1.100
netmask 255.255.255.0
准确输入这些规则:
sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
将我的规则保存到一个文件并将其添加到 /etc/rc.local
通过将 /proc/sys/net/ipv4/ip_forward 的值更改为 1 来启用 IP 转发
取消注释net.ipv4.ip_forward=1/etc/sysctl.conf 中的行
重新启动
现在,当我将笔记本电脑插入 eth1 接口时,我获得了一个 IP 地址并可以 ping 网关,但除此之外我无法访问任何内容。即,我无法 ping 8.8.8.8。
如果相关,我的另一个接口是 PPPoE 连接。它看起来像这样:
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up
provider dsl-provider
auto eth0
iface eth0 inet manual
Run Code Online (Sandbox Code Playgroud)
我想问题可能是 dnsmasq 没有分配名称服务器,所以我dns-nameservers 8.8.8.8 8.8.8.4在/etc/network/interfaces.conf 中的两个接口下都添加了。这没有帮助,所以我尝试将名称服务器添加到 /etc/resolv.conf。没有帮助。最后,我尝试将它们添加到 /etc/dnsmasq.conf:
no-resolv
server=8.8.8.8
server=8.8.4.4
Run Code Online (Sandbox Code Playgroud)
这也没有帮助。但是,我不确定我的问题是否真的与名称服务器有关,或者这是否只是过时、毫无价值的文档的另一种情况。
我曾经能够在网络管理器中使用它,但我不喜欢网络管理器不让我分配 DHCP 范围的方式。所以我想避免回到那个问题。
固定的:
sudo iptables -A FORWARD -o ppp0 -i eth1 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)
再次感谢 #openwrt 的 g0rdon :)
| 归档时间: |
|
| 查看次数: |
6578 次 |
| 最近记录: |