答案1
是的,你可以做到这一点,而且并不那么难。我有一台带有无线卡和以太网端口的笔记本电脑。我通过“交叉”以太网线将运行 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 地址也是如此。您必须动动脑筋找出适合您的设置。
答案2
是否可以?绝对地。您所需要做的就是配置 IP 转发、路由或其他一些(简单)方法,将数据包从笔记本电脑上的以太网端口移动到笔记本电脑上的 WiFi,反之亦然。这是不是一个好主意?可能不会——您的网络管理员可能会对您感到有点不满。
答案3
根据维基百科,如果以太网端口之一是千兆位,普通电缆就可以工作,不需要交叉,我两侧都有千兆位,普通电缆就可以工作。
这个问题是在 2016 年提出的,所以我假设网络管理器在两台 Linux 机器上运行,您可以使用它的 GUI 来设置 ip-s,如果没有,您可能进行了自定义设置并且知道如何从命令提示符设置 ip,所以我省略了这些细节。
连接电缆后,您将在 GUI 中获得与笔记本电脑和工作站上的以太网相关的网络接口名称。
假设您不关心定期将工作站(和/或笔记本电脑通过以太网)连接到其他网络设备,您可以在两个以太网接口上设置静态 IP。
设置与 wi-fi 不同的静态 IP 子网,例如,如果 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 更好,因此默认情况下它会尝试将所有内容发送到它,并且在设置以太网后您将失去互联网连接。要重新使用 wi-fi,在笔记本电脑上,您需要在与以太网连接相关的文件的 [ipv4] 部分(您在以太网网络管理器 GUI 中看到的名称)位置/etc/NetworkManager/
添加行
never-default=true
(如果您的 GUI 有类似“仅用于此连接上的资源”的以太网复选框 - 在我的 GUI 上,它位于连接属性的 ip4 部分,您可以使用它)。
最后,假设您的 IP 表规则默认保留接受所有内容,您来自工作站的数据包将发送到互联网,但不会找到返回路径,仅返回到笔记本电脑,直到您通过一个命令在笔记本电脑上设置 NAT 规则(其中 eth0 应该是名称)您的 wi-fi 连接的名称,您可以通过 找到名称sudo ifconfig
):
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
如果此后不起作用,请尝试重新启动网络管理器:
sudo service network-manager restart
你应该已经准备好了。