计划赶不上变化

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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   张培粉  阅读(475)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示