我现在正在工作,我们的 wifi 坏了。我通常通过 eth0 将台式机连接到互联网,笔记本电脑通过 wifi 连接。
我的台式机背面有一个额外的端口 (eth1),笔记本电脑上有一个额外的端口 (eth0)。我尝试在这两个端口之间连接交叉电缆并建立连接。
我通过笔记本电脑设置了一条到台式机的路由,我可以在两台机器之间 ping 通,但两台机器都不会通过台式机的 eth0 连接到互联网。
非常感谢任何帮助=)
答案1
下面介绍了如何在 Linux 计算机上手动设置 IPv4 连接共享。在路由器(桌面)上,启用数据包转发,设置伪装在面向 Internet 的接口 ( eth0
) 上,并在本地接口 ( ) 上使用专用 IP 范围eth1
。以 root 身份运行这些命令:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
ifconfig eth1 up 10.1.1.1 broadcast 10.1.1.255 netmask 255.255.255.0
在笔记本电脑上,您可以设置静态地址和路由(eth0
即有线接口):
ifconfig eth0 up 10.1.1.2 broadcast 10.1.1.255 netmask 255.255.255.0
route add -net 0.0.0.0/0 gw 10.1.1.1
为了避免在笔记本电脑上进行任何特殊设置,您可以在台式机上运行 DHCP 服务器。例如,安装域名解析/etc/dnsmasq.conf
并通过编辑包含以下行来启用其内置的 DHCP 服务器:
except-interface=eth0
dhcp-range=10.1.1.128,10.1.1.254,24h
请注意,网络管理器可能会干扰这些指令。如果您正在路由器上运行它,请停止它或阅读Ubuntu 社区 Internet 连接共享页面。 (笔记本电脑上的网络管理器不是问题。)
如果您希望这些设置在重新启动后保留,这在某种程度上取决于发行版。在 Debian 和派生发行版上,将以下行放入/etc/sysctl.d/connection-sharing.conf
:
net.ipv4.ip_forward=1
以及以下行/etc/network/interfaces
:
auto eth1
iface eth1 inet static
address 10.1.1.1
broadcast 10.1.1.255
netmask 255.255.255.0
post-up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
答案2
使用漂亮且易于配置的工具 - shorewall。
答案3
我必须同意 teZeriusz 的观点:Shorewall 是配置和管理路由器的一种快速而简单的方法(文档在这里)