利用服务器实现内网穿透,远程访问终端设备

利用服务器实现内网穿透,远程访问终端设备

目的

  1. 实现内网穿透
  2. 通过公网代理服务器,远程控制终端设备
  3. 解决服务器端口的环回地址(127.0.0.1)

前期准备

1. 两台笔记本,需联网,分别是笔记本A,笔记本B
2. 准备一台服务器,公网IP

搭建过程

1. 在服务中新增sshd_confi配置
vim /etc/ssh/sshd_config

添加以下配置

GatewayPorts yes
UseDNS no
GSSAPIAuthentication no

重启sshd服务(以下是centos的,其他的自行google吧)

 service sshd restart
2. 在笔记本A上搭建docker服务

前期需要将笔记本A上的公钥添加到服务器的authorized_keys中,目的是实现免密登录

version: '3.2'
services:
  ssh2:
    image: jnovack/autossh
    container_name: ssh2
    platform: linux/x86_64
    restart: always # 只要是失败的一直重启
    environment:
     - SSH_REMOTE_USER=root  # 服务器用户名
     - SSH_REMOTE_HOST=public_ip # 服务器公网ip
     - SSH_REMOTE_PORT=22 #服务器的ssh服务端口
     - SSH_BIND_IP=*  # 设置为*
     - SSH_TUNNEL_PORT=26379 # 转发到服务器的端口(不要与服务的端口冲突)
     - SSH_TARGET_HOST=inter_A_ip # 转发的服务端口ip
     - SSH_TARGET_PORT=6379 # 需要转发的内网服务的端口
     - SSH_MODE=-R # 选择R
    volumes:
     - /root/.ssh/id_rsa:/id_rsa # 获取笔记本的私钥文件位置
    dns: # 这个不要动
     - 8.8.8.8
     - 4.2.2.4

使用以下命令也是同样的效果

ssh -fgN -R *:26379:inter_A_ip:6379 root@public_ip
3. 服务端查询监听端口
netstat -anp | grep LISTEN | grep 26379

返回以下信息

[root@VM-24-9-centos ~]# netstat -anp | grep LISTEN | grep 26379
tcp        0      0 0.0.0.0:26379           0.0.0.0:*               LISTEN      16562/sshd: root    
tcp6       0      0 :::26379                :::*                    LISTEN      16562/sshd: root 
4. 杀死端口
kill 16562

如果是使用的docker部署,并且使用的restart = always 后发现杀不死,是因为笔记本A一直在重连

5. 端口验证

这个是redis的端口,我使用redis-cli验证成功了

需要验证的信息
使用内网ip验证
6. 远程访问
这个就不示范了,只要在服务器能使用内网访问端口,然后通过防火墙开放端口就OK了
7. 核心点
第一个 内网搭建穿透隧道
第二个 sshd的环回地址(127.0.0.1)为0.0.0.0 (***核心******),如果未设置这个,那只能使用端口转发
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值