ssh内网穿透连接树莓派 #7
Open
ssh内网穿透连接树莓派 #7
Comments
ssh -f -N -R 2222:localhost:22 username@1.1.1.1 这个改成ssh -f -N -R 0.0.0.0:2222:localhost:22 username@1.1.1.1,然后把/etc/ssh/sshd_config 里加上GatewayPorts yes,就能把2222绑定到0.0.0.0上,通过外网也能直接访问1.1.1.1的2222端口了 |
怎么手工断开ssh隧道? |
首先 |
|
@bbiao 好像不行吧, 绑定的还是127.0.0.1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
为了不让树莓派继续在家吃灰,周末又拿出来折腾了一下。apt-get升了个级,300M+的更新之后竟然没挂!可以继续折腾。。
家里电信宽带,路由器admin密码有待破解,在外网如何方便控制家里的树莓派成了一个问题。
目前有个小vps,可以作为中继连接树莓派,有几种方案选择:
1. 首选VPN
这个很简单,vps上搭建一个vpn,然后树莓派和控制端都连上vpn,那么树莓派和控制端就在同一个局域网内部了,可以直接ssh连接的。
网上找到这样的方法连vpn:
sudo pptpsetup --create vpnname --server ip --username test --password test --encrypt --start
,但是树莓派一执行这个命令就断网,原因未知,只能重启。2. 通过ssh隧道
原理也很简单,假设vps地址是
1.1.1.1
,树莓派通过ssh连接到vps,同时将vps上某个端口比如1234
映射到树莓派的ssh端口比如22
,这样在vps上访问1234
端口就相当于访问树莓派的22
端口,命令很简单:上面那个命令会将vps上的2222端口映射到树莓派的22端口(ps:你也可以映射你感兴趣的其他端口^_^):
看起来这样就OK了,但是,如果树莓派的ssh因为某种原因断开了,我们就无法再控制了,因此我们需要让ssh断开之后自动重连,
autossh
是一个好选择,在树莓派开启ssh隧道需要这样做:我们需要autossh自动连接,就需要让树莓派可以免密码ssh登陆vps,这样重连的时候可以自动连上:
假设上面的操作我们是在树莓派上用
rpi
这个账户这样树莓派只要开机就自动连接vps,我们就可以方便地控制和重启了。
上面提到,在vps上,
2222
这个端口实际上是在127.0.0.1
上监听的,也就是说在外网是没法直接ssh的,我们可以通过以下方式来解决1. 笨办法
ssh登上vps,然后再
ssh -p 2222 rpi@localhost
登陆树莓派2. 将2222端口映射到外网
可以用
iptables
做端口映射,例如将vps的23端口映射到vps的2222端口需要注意的是需要打开
ip_forward
功能:# echo '1' > /proc/sys/net/ipv4/ip_forward
3. 配置客户端netstat转发
修改客户端的
~/.ssh/config
如下保存之后首先测试
ssh vps
可以正常登陆,然后确认vps上有安装netcat
,接下来就可以ssh rpi
来登陆树莓派了,如果ssh-copy-id
之后是可以一键直接登陆的,还可以用scp
来拷贝文件,非常方便。接下来就是看看在树莓派上折腾点东西玩~
ps: 贴张树莓派的照片
The text was updated successfully, but these errors were encountered: