openssh内网穿透

1,>设置内网穿透

一:前提条件:

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 -p 22 -i ~/.ssh/id_rsa.pub [email protected]

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

2,配置autossh

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

# wget http://www.harding.motd.ca/autossh/autossh-1.4e.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'  [email protected]

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

参数解释:

-p  22   [email protected]   :表示连接远程服务器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' [email protected] -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

猜你喜欢

转载自blog.csdn.net/kunzai6/article/details/81116999