通过ssh远程端口转发使外网能访问到内网机器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011870280/article/details/83021946

家里有两台树莓派平时在外面想访问下

首先启用服务器端GatewayPort来使远程网卡可以绑定,设置连接保持

vim /etc/ssh/sshd_config
#修改以下属性
GatewayPorts yes
ClientAliveInterval 60
ClientAliveCountMax 3

#然后退出vim编辑器,重新加载sshd配置
service sshd reload

建立远程端口转发隧道

ssh -N -f -p 远程ssh端口 -R 远程网卡:远程要暴露的端口:本机网卡:本机要转发的端口 root@远程host

如果不想手动输入密码可以用expect或者ssh-keygen

expect如下

#!/usr/bin/expect
spawn ssh -N -f -p 远程ssh端口 -R 远程网卡:远程要暴露的端口:本机网卡:本机要转发的端口 root@远程host
expect "password:"
send "密码\r"
expect eof

ssh-keygen如下

ssh-keygen -t rsa
#然后将公钥传到远程机器
ssh-copy-id -p 远程ssh端口 -i ~/.ssh/id_rsa.pub root@远程host

然后还可以用autossh来自动重连

autossh -p 远程端口 -M 自动重连监听端口 -NR 代理端口:127.0.0.1:被代理端口 root@host

然后如果有防火墙还得开启下端口

#开启防火墙
systemctl start firewalld.service
#开机启动防火墙
systemctl enable firewalld.service
#开启端口
firewall-cmd --zone=public --add-port=端口/tcp --permanent
#重新加载配置
firewall-cmd --reload
#查看端口是否开启
firewall-cmd --zone=public --query-port=端口/tcp

猜你喜欢

转载自blog.csdn.net/u011870280/article/details/83021946