当您重新启动 Linux PC 时,您将不得不重新输入这些命令——我有一个在每次启动时运行它们的脚本。您可以通过适当的“服务”调用使这些更改永久化(再次,请参阅上面给出的 oracle-base.com 指南),但我建议在每次启动时运行它们(在脚本中),因为您可能想要试验和更改东西,撤消你保存的东西是另一个挑战。如果出现问题,或者您想更改某些内容,或者您只是不希望当前会话使用此功能(或根本不想要此功能),那么只需重新启动您的 PC,它们就消失了 - 但您必须自己禁用数据包转发(在重新启动之前,在 /etc/sysctl.conf 中写入“net.ipv4.ip_forward = 0”)以完全禁用此技术。
现在您必须在 Linux PC 和其他计算机之间创建网络连接(以太网连接)。例如:
A)在连接到互联网的 Linux PC 上(我使用 Fedora),使用网络连接管理器,我创建一个以太网连接,选择适当的接口(网卡名称,在我的情况下为 enp3s0),将这台 Linux PC 连接到我的局域网。请务必选择正确的防火墙区域,否则您的 LAN 将无法上网。因此,由于这是您的内部 LAN 接口,请将防火墙区域设置为“受信任”,但调制解调器连接接口应设置为“公共”。接下来,在 IPv4 设置选项卡中,设置必须使用 IPv4 进行连接(可以忽略 IPv6),并选择手动地址设置。现在添加地址 192.168.2.100 - 这将是您 LAN 上这台 Linux PC 的地址。网络掩码将自动设置(255.255.255.0,因为这是一个“C 类”(私有)地址)。应用您的设置并连接。
B) 在第二台 PC 上(使用 Linux 或 Windows,通过以太网电缆连接到上面的第一台),也创建一个网络连接(如果是 Windows,请查看下面的详细信息),选择适当的网络接口(设备/卡连接到第一台 PC),对第一台 PC 使用上述手动 IPv4 设置,但此处设置地址 192.168.2.101 - 这将是您 LAN 上第二台 PC 的地址(这些是“私有”地址,意味着以确保它们在您的 LAN 之外不可见)。
B1)如果要连接Windows(操作系统),进入“网络和共享中心”->“更改适配器设置”,在这台Windows PC上查找与你的局域网网卡对应的网络接口,也就是通过以太网电缆连接到第一台 PC。现在,选择该接口,右键单击属性。您将看到一个列表。此处取消选择“Internet 协议版本 6”并双击“Internet 协议版本 4”。现在您输入地址 192.168.2.101 - 这将是该 Windows PC 在该接口(在该 [LAN/以太网] 连接上)的地址)。选项卡向下,以便自动填写网络掩码 (255.255.255.0)。(“网络配置文件”可以设置为“公共”。)
B2) 可能需要将网关地址设置为第一台 Linux PC,因此您需要输入网关地址 192.168.2.100。
C) 现在,您必须输入您的第一台 Linux PC 正在使用的 DNS 地址。例如,我的调制解调器使用 DNS 地址 192.168.1.1(我可以使用命令“nmcli device show | grep IP4.DNS”找到它,其中 interfacename 是连接到 Internet 的 Linux 接口的名称)。(如果您使用 Windows 连接到 Internet,请在终端/命令提示符下运行“ipconfig”,查找 DNS 地址)。就是这样。DNS 信息对于获得 Internet 连接至关重要。
所以简而言之:
我的调制解调器地址:192.168.1.100,DNS 192.168.1.1。
LAN 上的 Linux PC 地址:192.168.2.100,使用 iptables 重定向流量启用数据包转发,如上所述,防火墙区域设置为“受信任”。
Windows PC 1 地址:192.168.2.101,DNS 设置为 192.168.1.1,网络配置文件设置为公共。(默认网关设置为 Linux PC:192.168.2.100)。
Windows PC 2 地址:192.168.2.102,DNS 设置为 192.168.1.1,网络配置文件设置为公共。(默认网关设置为 Linux PC:192.168.2.100)。
我有一台运行 Ubuntu 9.10 的 MacMini,使用无线互联网连接。然后我将 Xbox360 连接到 MacMini 的以太网端口以使用 Xbox Live。
这很容易。只需右键单击您的网络管理器并选择“编辑连接”。然后在“有线”选项卡中,您可以使用现有的有线连接,(或通过点击“添加”按钮创建一个新连接,将新连接命名为“共享网络端口”或类似名称),弹出其 IPv4 选项卡并在“方法”中选择“共享到其他计算机”。应用所有内容并关闭网络管理器窗口。
现在,当您需要将某些东西插入该以太网端口时,您只需单击网络管理器并在那里选择“共享网络端口”条目即可共享您的 WIFI 互联网连接。
如果您希望这是一个经常使用的用于共享的以太网连接,而不是其他任何东西,请随意编辑“Auto Eth0”,而不是像我上面描述的那样创建一个新条目。但是,创建新条目可为您提供一些选择的灵活性。
请注意,这使用了一些 NAT(网络地址转换)魔法才能正常工作,因此 Xbox360(或您插入有线端口的任何东西)将获得一个时髦的 IP 地址。
从记忆中,它也只能看到互联网 - 我认为您看不到主机,即具有互联网连接的主机。您可以设置它,但我相信它需要对 DHCP 服务器进行一些处理。我不需要它,所以我没有走那条路。
这很容易。右键单击网络管理器,然后单击编辑连接。在有线选项卡下,添加新连接。在 IPV4 设置选项卡下,为方法选择“共享给其他人”。
现在其他机器应该连接到 LAN 并自动访问 Internet。
https://oracle-base.com/articles/linux/use-iptables-to-implement-packet-filtering-and-configure-nat有一个简单的指南。但我发现,在 Windows 中,Linux PC 使用的 DNS 地址也必须在 Windows 中给出。
我有一个连接到我的 Linux PC 的 3G USB 调制解调器,然后我有两台可以上网的 Windows PC。它被称为(内核)数据包转发,当你最终理解它时,它非常简单快捷。
您需要通过在 Linux 上(在终端中)运行命令“ifconfig”和在 Windows 上(在命令提示符中)运行“ipconfig”命令来找出您的网络接口名称。Linux 上的接口名称位于最左侧,例如:enp2s0、enp3s0、enp0s18f2u6、lo。现在您设置打包转发:
首先,您需要在 Linux PC 上启用数据包转发(请参阅我从 oracle-base.com 链接的指南)。
接下来,您可以运行这些命令,正如 oracle-base.com 指南所说的(但请稍等,然后继续阅读):
sudo iptables -I FORWARD -i my_lan_interface -o my_modem_interface -j ACCEPT sudo iptables -I FORWARD -i my_modem_interface -o my_lan_interface -j ACCEPT sudo iptables -t nat -I POSTROUTING -o my_modem_interface -j MASQUERADE
但是我在网上找到了一种更强大的方法:
sudo iptables -t nat -A POSTROUTING -o my_modem_interface -j MASQUERADE --random sudo iptables -A FORWARD -i my_lan_interface -o my_modem_interface -j ACCEPT sudo iptables -A FORWARD -i my_modem_interface -o my_lan_interface -m conntrack --ctstate 相关,已建立 -j 接受 sudo iptables -A FORWARD -j DROP
以下是上述命令的解释(“更强大”的示例),顺序相同:
现在我们要配置转发规则。默认情况下,iptables 将无条件转发所有流量。在这里,我们更喜欢限制来自互联网的入站流量并允许所有传出:
当您重新启动 Linux PC 时,您将不得不重新输入这些命令——我有一个在每次启动时运行它们的脚本。您可以通过适当的“服务”调用使这些更改永久化(再次,请参阅上面给出的 oracle-base.com 指南),但我建议在每次启动时运行它们(在脚本中),因为您可能想要试验和更改东西,撤消你保存的东西是另一个挑战。如果出现问题,或者您想更改某些内容,或者您只是不希望当前会话使用此功能(或根本不想要此功能),那么只需重新启动您的 PC,它们就消失了 - 但您必须自己禁用数据包转发(在重新启动之前,在 /etc/sysctl.conf 中写入“net.ipv4.ip_forward = 0”)以完全禁用此技术。
现在您必须在 Linux PC 和其他计算机之间创建网络连接(以太网连接)。例如:
A)在连接到互联网的 Linux PC 上(我使用 Fedora),使用网络连接管理器,我创建一个以太网连接,选择适当的接口(网卡名称,在我的情况下为 enp3s0),将这台 Linux PC 连接到我的局域网。请务必选择正确的防火墙区域,否则您的 LAN 将无法上网。因此,由于这是您的内部 LAN 接口,请将防火墙区域设置为“受信任”,但调制解调器连接接口应设置为“公共”。接下来,在 IPv4 设置选项卡中,设置必须使用 IPv4 进行连接(可以忽略 IPv6),并选择手动地址设置。现在添加地址 192.168.2.100 - 这将是您 LAN 上这台 Linux PC 的地址。网络掩码将自动设置(255.255.255.0,因为这是一个“C 类”(私有)地址)。应用您的设置并连接。
B) 在第二台 PC 上(使用 Linux 或 Windows,通过以太网电缆连接到上面的第一台),也创建一个网络连接(如果是 Windows,请查看下面的详细信息),选择适当的网络接口(设备/卡连接到第一台 PC),对第一台 PC 使用上述手动 IPv4 设置,但此处设置地址 192.168.2.101 - 这将是您 LAN 上第二台 PC 的地址(这些是“私有”地址,意味着以确保它们在您的 LAN 之外不可见)。
B1)如果要连接Windows(操作系统),进入“网络和共享中心”->“更改适配器设置”,在这台Windows PC上查找与你的局域网网卡对应的网络接口,也就是通过以太网电缆连接到第一台 PC。现在,选择该接口,右键单击属性。您将看到一个列表。此处取消选择“Internet 协议版本 6”并双击“Internet 协议版本 4”。现在您输入地址 192.168.2.101 - 这将是该 Windows PC 在该接口(在该 [LAN/以太网] 连接上)的地址)。选项卡向下,以便自动填写网络掩码 (255.255.255.0)。(“网络配置文件”可以设置为“公共”。)
B2) 可能需要将网关地址设置为第一台 Linux PC,因此您需要输入网关地址 192.168.2.100。
C) 现在,您必须输入您的第一台 Linux PC 正在使用的 DNS 地址。例如,我的调制解调器使用 DNS 地址 192.168.1.1(我可以使用命令“nmcli device show | grep IP4.DNS”找到它,其中 interfacename 是连接到 Internet 的 Linux 接口的名称)。(如果您使用 Windows 连接到 Internet,请在终端/命令提示符下运行“ipconfig”,查找 DNS 地址)。就是这样。DNS 信息对于获得 Internet 连接至关重要。
所以简而言之:
我的调制解调器地址:192.168.1.100,DNS 192.168.1.1。
LAN 上的 Linux PC 地址:192.168.2.100,使用 iptables 重定向流量启用数据包转发,如上所述,防火墙区域设置为“受信任”。
Windows PC 1 地址:192.168.2.101,DNS 设置为 192.168.1.1,网络配置文件设置为公共。(默认网关设置为 Linux PC:192.168.2.100)。
Windows PC 2 地址:192.168.2.102,DNS 设置为 192.168.1.1,网络配置文件设置为公共。(默认网关设置为 Linux PC:192.168.2.100)。
(所有计算机通过一个简单的以太网交换机与普通以太网电缆(也称为“跳线”或“跳线”)连接在一起,不要交叉,因为“现代”网卡自己交叉,所以你可以使用交叉电缆或不要交叉电缆,甚至将它们混合在一起连接。)
还有一个指南:https ://medium.com/@TarunChinmai/sharing-internet-connection-from-a-linux-machine-over-ethernet-a5cbbd775a4f ,它使用 Google 的 DNS 地址。一探究竟。