首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >socat:通过TTY隧道IP

socat:通过TTY隧道IP
EN

Stack Overflow用户
提问于 2011-05-04 22:16:27
回答 2查看 10.1K关注 0票数 7

是否有可能使用socat实用程序在类ttyS0的串行(调制解调器)设备上获得双向IP隧道?我试过使用TUN选项,但仍然无法得到结果。

欢迎任何建议:)

更新:

PC1:

代码语言:javascript
复制
socat /dev/ttyUSB0,raw,echo=0,b57600,clocal TUN:192.168.1.1/24,up

PC2:

代码语言:javascript
复制
socat /dev/ttyUSB0,raw,echo=0,b57600,clocal TUN:192.168.1.2/24,up

在那之后,我看到了tun0接口的两端都有合适的地址,但我不能从另一端切换一个。相反,当我用ping -c 1 192.168.1.1发送数据时,远程socat进程就会退出,并且它的tun0设备被破坏了。有什么建议吗..

Update2:

当我们尝试用套接字在串行上建立TCP/IP隧道时,会出现一个框架问题。socat的开发者Gerhard Rieger说:

,恐怕你是对的。tun的数据报套接字工作,并-运气-也超过管道。但是在串行线路上,数据包边界可能消失,这是致命的,当数据发送到tun接口上时。

我现在不能提供一个基于套接字的解决方案,对不起。但是,我将尝试将一些框架集成到更晚的版本2.中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-06 00:28:28

哈哈,我在工作,但需要一些魔法:)

因此,将第一个对等点配置为:

代码语言:javascript
复制
PC1:
1) slattach -L -s 57600 -p slip /dev/ttyUSB0 &
2) ifconfig sl0 up
3) socat TUN:192.168.1.1/24,up INTERFACE:sl0 &

..。就像第二位同龄人:

代码语言:javascript
复制
PC2:
1) slattach -L -s 57600 -p slip /dev/ttyUSB0 &
2) ifconfig sl0 up
3) socat TUN:192.168.1.2/24,up INTERFACE:sl0 &

现在,您可以成功地从另一台PC切换:

代码语言:javascript
复制
PC1:
1) ping -c 5 192.168.1.2

PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_req=1 ttl=64 time=348 ms
64 bytes from 192.168.1.2: icmp_req=2 ttl=64 time=551 ms
64 bytes from 192.168.1.2: icmp_req=3 ttl=64 time=557 ms
64 bytes from 192.168.1.2: icmp_req=4 ttl=64 time=549 ms
64 bytes from 192.168.1.2: icmp_req=5 ttl=64 time=348 ms

--- 192.168.1.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4003ms
rtt min/avg/max/mdev = 348.116/471.143/557.128/100.177 ms

由于slattach的使用,这有点棘手,但实际上,任何其他解决方案都必须使用slip之类的方法来组织串行行上的框架。例如,PPP使用类似HDLC的帧.

票数 8
EN

Stack Overflow用户

发布于 2014-02-28 11:09:32

根据我的尝试,你不需要socat来建立隧道。您只需执行以下操作:

代码语言:javascript
复制
PC1:
 1, sudo slattach -s 19200 -p slip -dL /dev/ttyUSB0
 2, sudo ifconfig sl0 10.0.0.1/24 up
 3, sudo route add default gw 10.0.0.254 sl0

PC2:
 1, sudo slattach -s 19200 -p slip -dL /dev/ttyUSB0
 2, sudo ifconfig sl0 10.0.0.2/24 up
 3, sudo route add default gw 10.0.0.254 sl0

设置之后,我可以从PC2中选择PC1,反之亦然。

还有另一个先决条件:您的Linux内核必须加载了slip模块。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5890505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档