我可以通过 SSH 进入一台连接了 wifi 适配器(接口为 wlan0)的机器。我可以在我的客户端机器上使用它的接口(wlan0)吗?
举个例子,如果我想在接口上运行 iwconfig(或任何可以使用 wlan0 的工具),而无需在服务器上安装它,而是在客户端计算机上安装它。
服务器和客户端都运行Linux。
答案1
如果 wifi 卡实际上是一个 USB 适配器,那么是的,您可以这样做。
解决方案是使用一种称为 USB over IP 的技术。目前有一个开源解决方案,另外还有两个商业解决方案。
操作系统的解决方案是通用协议。您必须在远程计算机上下载服务器端软件包,并在您自己的计算机上下载客户端软件包。非常易于使用,并且上面的页面包含您想要的所有详细信息。
在发出最后命令后,
sudo usbip -a <server-ip> device_to_be_attached
USB 设备将像在您的 PC 上一样出现。当您尝试将其作为网络接口启动时要小心,因为如果您让网络管理器配置您的路由表,它将完全搞乱它。在启动 usbip 连接之前关闭网络管理器并手动完成所有操作是更明智的做法。但这是可以做到的。
我所知道的商业解决方案是
Fabula-Tech USB 网络:
http://www.fabulatech.com/usb-over-network.html
Eltima 软件 USB 网络门:
http://www.eltima.com/products/usb-over-ethernet
可能还有其他,不能确定。
答案2
为什么不通过该盒子代理您的本地请求?
$ ssh -ND 8080 your.machine
这将充当本地计算机上的 SOCKS 服务器,所有请求都将转发到your.machine
。当然,这假设远程计算机上已设置 wifi,并且默认路由是通过该 wlan0 设备。您可以使用 iwconfig 在偏僻的机器。
您想问的是,您是否可以将实际的 wlan0 设备转发到您的机器,目前这是不可能的。
编辑:
忘记提到,通过 SOCKS 代理将流量路由到另一台机器需要客户端支持,例如在 Firefox 中,您必须调整网络设置。这是不是透明的隧道。
如果您想要一个可以通过另一台机器路由流量的本地设备(而另一台机器又会通过 wlan0 路由流量),那么您可以使用一个简单的隧道或 VPN。
$ ip tunnel add tuntowlan0 mode gre remote <remote-address>
但如果你不想的话,这将需要对本地机器上的路由表进行一些调整全部流量通过那里,并确保在远程框上启用了 IP 转发。