我有两台不在同一局域网的内网 Linux 机器 A, B, 还有一个公网服务器 C, A 可以 ssh 到 C, B 也可以, 我有什么办法通过 C 来实现 A B 通信么? 或者 A 直接拷贝文件给 B

2022-07-21 18:30:22 +08:00
 jdz

不考虑穿透(公司不允许)

3448 次点击
所在节点    Linux
36 条回复
czyt
2022-07-22 00:08:23 +08:00
ssh -R ssh- CNL
changz
2022-07-22 00:14:39 +08:00
netcat 了解下,网络开发的瑞士军刀
1024cai
2022-07-22 00:21:47 +08:00
n2n ,可以把两个不同内网的机器组成一个内网,然后像内网操作一样直接操作对方即可
shynome
2022-07-22 00:29:10 +08:00
不能组 VPN 的可以考虑我的方案,记得设好防火墙,只允许 A 、B 访问 C 的特定端口段
https://github.com/shynome/sshd-proxy
wslzy007
2022-07-22 00:53:37 +08:00
@jdz 推荐 SG ( github.com/lazy-luo/smarGate
如果 A 和 B 能 P2P ,你可以将 B/A 上的 tcp 端口直接映射到 A/B 上
Tink
2022-07-22 01:07:24 +08:00
ssh 打洞啊
Blacate
2022-07-22 01:37:57 +08:00
scp -3
ToBeHacker
2022-07-22 08:20:39 +08:00
libnice
fonlan
2022-07-22 08:41:54 +08:00
C 上架个 rclone server 然后 A 和 B 装 client 和 C 同步?
qbuer
2022-07-22 08:50:58 +08:00
如果要一步完成一定得穿透吧。我的方案是在公网服务器开 openvpn ,并开启 vpn 客户端互相访问。客户端间就可以相互 ssh 了
Davic1
2022-07-22 09:15:49 +08:00
ssh 隧道.
kaedeair
2022-07-22 09:28:15 +08:00
用 ssh 反向代理
litec
2022-07-22 09:33:14 +08:00
前面很多留言都有提到了,用 config 的話可以這樣寫,這是在 A machine 上的.ssh/config ,
之後可以 ssh user@B or scp file user@B:destination 來達成你要的目的
Host B
HostName ip of B
ProxyCommand ssh -q -W %h:%p C

Host C
HostName ip of C
MstMoonshine
2022-07-22 18:50:08 +08:00
如果需要拷贝文件的时候你同时可以访问 A 和 B 的话,可以考虑使用 Magic Wormhole ( https://github.com/magic-wormhole/magic-wormhole)。在 A 上执行 wormhole send [path_to_file],A 上会生成一个简单的 token (比如:9-monument-keyboard ),然后在 B 上执行 wormhole receive [token] 即可(比如 wormhole receive 9-monument-keyboard )。

如果不能同时访问 A 和 B 的话,就还是考虑 frp ( https://github.com/fatedier/frp )、ssh tunnel 之类的。
7RTDKSAK
2022-08-04 20:18:46 +08:00
croc 开 relay,楼主你信我没错
linuxgo
2022-08-18 16:14:14 +08:00
从 A sftp B 或者从 B sftp A

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/867836

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX