好吧,这可能听起来有点疯狂,但让我解释一下。
我有 2 台台式机,其中一台以太网端口损坏,另一台可用。两者都有模拟音频输入/输出,运行Linux,安装了迷你调制解调器,并且可以以大约750波特率可靠地来回发送数据(但纠错将非常有帮助)。由于两个桌面可以通过模拟立体声同时交换数据(无需等待接收完成后再发送),因此应该可以让以太网端口损坏的桌面上网吗?如果是这样,我该怎么办?我是否必须使用其他软件(例如 soundmodem)或其他应用程序?
编辑:我得到了它与下面的答案一起工作(在1200波特,平均丢包率<1%),但它创建了一个点对点连接而不是互联网联系。我该如何修改线路ip
以允许我连接到互联网?
先感谢您!
答案1
你应该能够用 SLIP 来做到这一点。查看某人所做的项目日志:https://xenoworld.de/knowledge/slip.html
答案2
对于问题的第二部分,它本质上与设置 LAN 到 WAN 路由器相同,假设您的设备已经识别并同意的“LAN 端”上有一个网络链接,正如 SLIP 所提供的那样。其他地方肯定有更多详细信息,但其不足之处(对于 IPv4)如下,假设路由器(具有 Internet 访问权限)具有地址本地地址$ROUTER
,并且隧道另一端的客户端具有地址$CLIENT
(所有这些都必须运行作为root
,或至少CAP_NET_ADMIN
并且可能是其他):
# On $ROUTER:
# ask the kernel to forward packets it receives that aren't destined
# for the local host:
echo 1 > /proc/sys/net/ipv4/ip_forward
# when forwarding packets from the client, rewrite the source addresses,
# since our network segment isn't globally visible:
iptables -t nat -A POSTROUTING -s $CLIENT/32 -j MASQUERADE
# (you might also set up some DNAT rules if you want to "port forward")
# On $CLIENT:
# be sure the router is always registered as a local route--it probably
# was when the interface was brought up, but just to be sure:
ip r add $ROUTER/32 dev $SLIPIF
# replace $SLIPIF with $CLIENT's name for the SLIP interface
# now tell the client that $ROUTER is happy to forward all other Internet
# traffic:
ip r add default via $ROUTER
在这个简单的示例中,既不$CLIENT
需要$ROUTER
共享地址空间,但您可以看到如果需要的话,如何将其轻松扩展到完整的 LAN 分配。你会看到这个过程的各种变体——可能使用稍微不同的工具,比如 BSD 工具,或者像更新的 netfilter 接口nftables
——到处都是,但是上面评论中表达的想法本质上是相同的。需要注意的是:如果一开始不起作用,请尝试确保没有其他东西(systemd-networkd
、NetworkManager
等)在“管理” SLIP 接口,也没有防火墙(如ufw
)主动使用 netfilter ;这两者往往对配置有一些其他的想法,这些想法可能与您正在做的事情相冲突,并且可能会默默地删除您的路由或丢弃您的数据包。