在其他地方想要访问家里的 raspberry pi, 通常是要在路由器上设置端口转发,然后绑定个动态域名。万一这个路由器不是自己的,自己没有任何权限,这样子旧束手无策了。
不过也是有解决方案的,用 ssh 的端口转发 ssh -CfNgR remote-port:localhost:local-port user@remote
。
hole 是另一种解决方案,通过 hole 你可以把 raspberry pi(其他机器也是可以的) 的任何端口转发到公网服务器上面去,这样子你就可以通过访问公网的 服务器来访问家里的服务了。
1
iskyzh 2015-06-26 23:42:12 +08:00
= = 所以 Hole 需要公网服务器,并且 Raspberry Pi 向公网服务器建立持久连接,这样想要访问 Raspberry Pi 就只要连接到公网服务器上了……
这么说起来还有种解决方案是 Upnp……只要路由器开启这个功能,就可以通过 Upnp 端口映射在公网上开个端口(可以指定端口),只要能够知道 Raspberry Pi 所在公网 ip 就可以访问了 = = 怎么看起来 Hole 和 Shadowsocks 都十分类似…… |
2
LeoQ 2015-06-27 00:00:29 +08:00 via Android
有需要,已书签
|
4
hardware 2015-06-27 00:42:01 +08:00
upnp不需要什么权限啊 只要默认开启的就行
我原来这功能用的是vpn做的 主要是因为在学校局域网内没法得到外网ip |
5
zonghua 2015-06-27 01:02:14 +08:00 via iPhone
真的吗,花生壳是什么原理,有时候很慢
|
6
des 2015-06-27 08:04:42 +08:00
你在说ngrok?
|
8
hiboshi 2015-06-27 09:35:24 +08:00
你说的是p2p打洞吧,利用公网一台机器来打动 和n2n类似
|
9
qgy18 2015-06-27 10:31:12 +08:00 via iPhone
我一直是用自己搭建的 ngrok 服务。它支持 HTTP(TCP)转发。
https://www.imququ.com/post/self-hosted-ngrokd.html |
11
zhoujianqingz 2015-06-27 12:25:16 +08:00 via iPhone
感谢!正好需要
|
12
giuem 2015-06-27 12:26:49 +08:00 via Android
我的 pi 在第二层局域网,不知道可不可以
路由器->路由器->raspberry pi |
14
kiritoalex 2015-06-27 12:54:27 +08:00
这个东东需要局域网内主机和外网主机有良好的连通性才行,不然隧道会失效,考虑到这个问题,可以上CDN来静态缓存一下
|
15
facat 2015-06-27 14:23:45 +08:00
这个和ngrok不是一样吗?
|
16
lalalakakaka 2015-06-27 14:55:46 +08:00
记得socat也不错
|
17
lupino OP @lalalakakaka 赞,socat 也是个好东西
|
19
sarices 2015-06-27 17:42:23 +08:00
有外网主机,直接用autossh
|