计划赶不上变化

导航

ssh的反向代理

记录一下因为项目上需要一个公网ip的端口接收数据,但是目前环境并不是公网ip,所以就只能用到ssh的反向代理

ssh 反向代理 - 不拨牙 - 博客园 (cnblogs.com) 参考的是这个博客

因为是临时的使用就不去研究这么多原理了,正好之前想要在外访问家里的服务器,真不错,学有所用了。 

总结一下:

准备  一个公网ip (因为我家是移动,搞不到公网ip,只能用腾讯云服务器提供的公网ip) 一台家用的机器 

公网ip 称为A机器  ip 101.230.2.23   name:tengxun

家用电脑 称为B机器  ip 192.168.2.22  name:jiayong

首先安装ssh 和autossh

1.机器A上配置sshd 

  sudo  vim /etc/ssh/sshd_config

  配置GatewayPorts为yes

  重启 sshd    sudo service sshd restart

2.在B机器上输入ssh-copy-id  tengxun@101.230.2.23  免密登录

3.在B机器上输入 autossh -M 23332 -NR 23333:localhost:22  tengxun@101.230.2.23   然后会运行卡住      然后在任意机器上运行  ssh jiayong@101.230.2.23 -p  23333  就可以进入B机器了

注意:这里面的23332 和23333在A机器必须允许在防火墙打开  ,如果是腾讯云或者阿里云必须要在安全组里面添加上,否则不会通的。可以通过以下两条命令来开放端口

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

sudo firewall-cmd --zone=public  --list-ports

上面测试成功就说明两边已经通了

下面继续反向隧道自启动  

sudo vim /etc/systemd/system/autossh.service 创建新的文件

里面内容为

[Unit]
Description=autossh
[Service]
ExecStart=/usr/bin/autossh -M 23332 -NR 23333:localhost:22 tengxun@101.230.2.23 -i /home/xxx/.ssh/id_rsa -o StrictHostKeyChecking=no
[Install]
WantedBy=multi-user.targe

 

然后在B机器运行

sudo systemctl daemon-reload

sudo systemctl enable autossh.service

sudo systemctl start autossh.service

sudo systemctl status autossh.service

以后开机的时候都会运行的。

这个功能也就这样结束了,还是挺好的。

 

posted on 2022-04-24 20:49  张培粉  阅读(465)  评论(0编辑  收藏  举报