当前位置: 首页 > 工具软件 > Autossh > 使用案例 >

Linux使用AutoSSH做内网穿透

诸腾
2023-12-01

配置公网的服务器

修改ssh配置文件

vi /etc/ssh/sshd_config


#连接相关配置
GatewayPorts yes	# 是否允许远程主机连接本地的转发端口
TcpKeepAlive yes	# 是否保持连接
ClientAliveInterval 30	# 心跳发送间隔
ClientAliveCountMax 5	# 心跳发送最大失败次数

配置内网的服务器

1、配置免密登录公网的服务器

用ssh-keygen生成密钥

ssh-keygen

# 这里填写的路径是最终生成密钥的路径,一般用括号给出的
Enter file in which to save the key (/root/.ssh/id_rsa):

# 一般为空,直接回车即可
Enter passphrase (empty for no passphrase):
same passphrase again:

用ssh-copy-id将公钥复制到远程机器中

# 路径填写上面生成密钥的路径
ssh-copy-id -i ./root/ssh/id_rsa.pub  用户名@公网机子ip

测试是否可以免密登录

ssh  用户名@公网机子ip

2、安装autossh

yum -y install autossh
  • 如果提示没有可用包,则下载源码编译安装:
    sudo yum install wget gcc make
    
    wget http://www.harding.motd.ca/autossh/autossh-1.4e.tgz
    
    tar -xf autossh-1.4e.tgz
    
    cd autossh-1.4e
    
    ./configure
    
    make
    
    sudo make install
    

3、配置公网服务器远程代理

# 用公网机器(比如:123.123.123.123)的80端口代理本地的8080端口
autossh -M 8888 -fCNR 80:localhost:8080 root@123.123.123.123
  • -M:这个参数指定一个本地端口,用该端口来监视跳板机是否正常,否则重连
    • 注意:如果要通过 autossh 指定多个映射,那么 -M 参数要不同,否则因为本地端口冲突无法生效
  • -f:后台执行ssh指令
  • -C:允许压缩数据
  • -N:不执行远程指令
  • -R:将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口
    • 注意(拿这个例子来说):还要开放公网服务器的80端口、内网服务器的8080端口。

4、测试
拿本例来说,访问公网服务器的80端口,即可反向代理到内网机器的8080端口

 类似资料: