目前,我工作过的建筑物中的以太网端口已关闭,但Wi-Fi有效。我有一台支持Wi-Fi的笔记本电脑(Ubuntu 14.04 LTS(Trusty Tahr))和一个没有Wi-Fi的工作台(Debian 8(Jessie)),仅带有以太网插头。
是否可以通过以太网电缆将两者连接并能够在工作站上获得网络连接?
目前,我工作过的建筑物中的以太网端口已关闭,但Wi-Fi有效。我有一台支持Wi-Fi的笔记本电脑(Ubuntu 14.04 LTS(Trusty Tahr))和一个没有Wi-Fi的工作台(Debian 8(Jessie)),仅带有以太网插头。
是否可以通过以太网电缆将两者连接并能够在工作站上获得网络连接?
Answers:
是的,您可以做到这一点,而且也不难。我有一台带无线网卡和以太网端口的笔记本电脑。我通过“交叉”以太网电缆将运行Arch Linux的RapberryPi插入其中。那是您可能需要的一件事-并非所有的以太网卡都可以进行机器对机器的直接连接。
另一个棘手的部分是IP寻址。最好说明一下。这是我的小安装脚本。同样,enp9s0是笔记本电脑的以太网端口,wlp12s0是笔记本电脑的无线设备。
#!/bin/bash
/usr/bin/ip link set dev enp9s0 up
/usr/bin/ip addr add 172.16.1.1/24 dev enp9s0
sleep 10
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE
iptables -A FORWARD -o enp9s0 -i wlp12s0 -s 172.16.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
dhcpd -cf /etc/dhcpd.enp9s0.conf enp9s0
该脚本为以太网卡设置了静态IP地址172.16.1.1,然后通过加载内核模块来设置NAT。它打开IP路由(在笔记本电脑上),然后进行一些iptables
半魔术操作,以将数据包从无线卡路由到以太网,反之亦然。
我已经dhcpd
在以太网端口上运行以提供IP地址,因为那是Raspberry Pi想要的,但是您可以在工作站上创建静态地址,以及静态路由,DNS服务器和NTP服务器。
该文件/etc/dhcpd.enp9s0.conf
如下所示,以防万一您走那条路线:
option domain-name "subnet";
option domain-name-servers 10.0.0.3;
option routers 172.16.1.1;
option ntp-servers 10.0.0.3;
default-lease-time 14440;
ddns-update-style none;
deny bootp;
shared-network intranet {
subnet 172.16.1.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
pool { range 172.16.1.50 172.16.1.200; }
}
}
IP地址的选择非常关键。我将172.16.1.0/24用作笔记本电脑的以太网电缆。笔记本电脑上的无线网卡最终以192.161.1.0/24开头。您需要查看笔记本电脑的无线设备具有的IP地址,并为以太网卡选择其他子网。此外,您需要选择“ bogon”或“不可路由”网络之一。在我的示例中,172.16.1.0/24来自官方的不可路由IP地址,而192.168.1.0/24则来自dhcpd.enp9s0.conf
DNS服务器和NTP服务器的10.0.0.3地址。您必须动脑筋找出适合您的设置的方法。
根据维基百科,如果以太网端口之一是千兆,则普通电缆即可工作,无需交叉,我两面都有千兆位,普通电缆也可工作。
这个问题是在2016年提出的,所以我假设网络管理器在两台Linux机器上都运行,您可以使用它的GUI来设置ip-s,如果没有,您可能要进行自定义设置并知道如何从命令提示符下设置ip,因此我忽略了那些细节。
使用电缆连接后,您将在GUI中获得与笔记本电脑和工作站上的以太网相关的网络接口名称。
假设您不关心将工作站(和/或膝上型计算机通过以太网)定期连接到其他网络设备,则可以在两个接口上都为以太网接口设置静态IP。
设置您的静态IP与wi-fi不同的子网,例如,如果wi-fi为192.168.1.0/16,设置为192.168.2.1和192.168.2.2,则子网掩码为255.255.255.0,因为IP的最后一个“数字”不同,工作站上的DNS应设置为与笔记本电脑上的wi-fi相同的DNS IP,以便能够在工作站上使用DNS(按名称开放的站点,而不仅仅是IP)。
您需要在笔记本电脑上启用IP转发:
sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
您的笔记本电脑网络管理员很可能会认为以太网质量比wi-fi更好,它将默认尝试将所有内容发送给它,并且在设置以太网后您将失去Internet连接。要恢复使用Wi-Fi,在笔记本电脑上,您需要在位置/etc/NetworkManager/
添加行中与以太网连接有关的文件的[ipv4]部分(在网络管理器GUI中看到的名称,用于以太网)
never-default=true
(如果您的GUI的以太网复选框类似于“仅用于此连接上的资源”复选框-在我的连接属性的ip4部分中,则可以使用该复选框)。
最后,假设您默认情况下保留IP表规则,接受所有内容,那么来自工作站的数据包将进入Internet,但直到您通过一个命令在笔记本电脑上设置NAT规则(其中eth0应为name)后,它才会找到仅返回笔记本电脑的回程。的wi-fi连接,您可以通过找出名称sudo ifconfig
:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
如果在那之后不起作用,请尝试重新启动网络管理器:
sudo service network-manager restart
你应该准备好了。