openssh、putty做linux和windows系统下的内网穿透

1,>linux设置内网穿透

一:前提条件:

A服务器,具有公网ip,

B 服务器,局域网,也就是需要转发出去的服务器。

在A和B服务器中安装ssh,yum  install  ssh

二:在A服务器中:

首先在A服务器上编辑sshd的配置文件/etc/ssh/sshd_config(也可以使用find  /  -name  sshd_config查看具体路径),将GatewayPorts 开关打开:

1,将GatewayPorts  no 

      改为:GatewayPorts  yes

2,重启sshd:
      systemctl   restart  sshd

三:在B服务器中:

1,配置免密码登录,在B服务器生成公钥并负责到服务器A中

   # ssh-keygen -t rsa    #连续三次回车,即在本地生成了公钥和私钥,不要设置密码

   # ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 root@220.126.67.120

  参数解释:22为远程服务器的ssh端口,root为远程服务器的用户,220.126.67.120为远程服务器的IP.

2,配置autossh

采用autossh保存自动长链接,但是在centos系统中,autossh需要自己编译源码安装,步骤如下:

# wget http://www.harding.motd.ca/autossh/autossh-1.4e.tgz(好像不行,用下面的连接)

# wget https://fossies.org/linux/privat/autossh-1.4g.tgz

# tar -xf autossh-1.4e.tgz

# cd autossh-1.4e

# ./configure

# make

# make install

3,内网穿透:

autossh -p 22 -M 6768 -fCNR  '*:8010:127.0.0.1:81'  root@wwggzp.com

即可,访问www.wwggzp.com:8010即可访问到本地服务器的81端口

参数解释:

-p  22   usera@a.site   :表示连接远程服务器a.site(也可以是ip,这里是域名)中用户名为usera的连接,连接端口为22,也是远程ssh的默认端口

-M 6768 ;参数指定的端口用来监听隧道的状态,连接有问题时就会自动重连,autossh本身在后台运行,与端口转发无关。

-NR '*:8010:127.0.0.1:81'   ;将当前本地端口81,转发到wwggzp.com的8010端口上,访问www.wwggzp.com:8010既可以访问本地81端口。

注释:以上方法可以同时配置多个内网穿透服务器。

 

2,>开机自启动内网穿透:

将autossh写入系统服务,使之在开机时可以自动建立SSH隧道,实现开机自启动内网穿透功能。

1,在服务器B中,在文件夹/lib/systemd/system中,创建autossh.service文件,并设置权限为644,并将以下内容保存到autossh.service中。

[Unit]Description=Auto SSH Tunnel
After=network-online.target
[Service]
User=root
Type=simple
ExecStart=/usr/local/bin/autossh -p 22 -M 6768 -NR '*:8010:127.0.0.1:81' root@wwggzp.com -i /usr/local/autossh/.ssh/id_rsa
ExecReload=/usr/bin/kill -HUP $MAINPID
KillMode=process
Restart=always
[Install]
WantedBy=multi-user.target
WantedBy=graphical.target

2,在服务器B上设置autossh自动启动:

      systemctl  enable  autossh

3,启动服务

      systemctl  start  autossh

 

3.在windows系统下的内网穿透

目的,微信小程序需要https,每次上传到服务器调试非常麻烦,现在将https请求转发到本地环境,每次调试时只要做一次内网穿透就行。数据还是从本地服务器拿,只是经过了公网转发。

A服务器(linux系统),具有公网ip,

B 服务器(windows),局域网,也就是需要转发出去的服务器。

一,同样在A服务器中:

首先在A服务器上编辑sshd的配置文件/etc/ssh/sshd_config(也可以使用find  /  -name  sshd_config查看具体路径),将GatewayPorts 开关打开:

1,将GatewayPorts  no 

      改为:GatewayPorts  yes

2,重启sshd:
      systemctl   restart  sshd

二,在服务器B中,下载putty,

设置装发参数:

三,点击open,在命令行界面输入用户名和密码即可转发。

注意事项:1,转发后可用netstat -ntlp命令在服务器A中查看端口是否监听

                     2,在转发后收不到服务器数据,很有可能是本地服务器没有返回数据,出现的坑,https服务器没有将http转到https中,所有采用http访问时,没有任何数据。需要使用https访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kunzai6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值