阿里云ECS | 内网机A | 内网机B |
---|---|---|
公网IP: 47.99.xxx.xxx | IP: 202.38.xxx.xxx | IP:222.195.xxx.xxx |
用户名: aaa/aaa | 用户名: bbb/bbb | 用户名:ccc/ccc |
ubuntu18 | ubuntu18 | win10 |
-
需要在阿里云ECS上开发一些端口
''网络与安全组“->"安全组配置"->"选择实例"->"配置规则", 需要开放入方向和出方向的端口,本次开放了2333-2433之间的全部端口.
在“安全组规则” -》 “访问规则”里在入方向和出方向里同时增加TCP和UDP协议的开发端口2333/2433.
网络类型 授权方向 授权策略 IP协议 端口范围 优先级 源IP地址段 源IPv6地址段 源安全组 源端安全组名称 源安全组所属阿里云账户ID 源端端口范围 目标IP地址段 intranet ingress Accept UDP 2333/2433 1 0.0.0.0/0 intranet ingress Accept TCP 2333/2433 1 0.0.0.0/0 intranet ingress Accept TCP 3389/3389 100 0.0.0.0/0 intranet ingress Accept TCP 22/22 100 0.0.0.0/0 intranet ingress Accept ICMP 1 100 0.0.0.0/0 1 intranet egress Accept UDP 2333/2433 1 0.0.0.0/0 intranet egress Accept TCP 2333/2433 1 0.0.0.0/0 修改阿里云ECS上SSH配置文件 /etc/ssh/sshd_config 将"GatewayPorts Yes"设为yes。 service ssh restart
-
将内网机A和内网机B的ssh公钥上传到阿里云ECS上:
# 在内网机A上执行下面命令
$ ssh-keygen
$ ssh-copy-id root@47.99.xxx.xxx
$ sudo apt install autossh
-
设置内网机A的反向代理
$ autossh -M 12345 -fgnvNTR 47.99.xxx.xxx:2333:localhost:22 aaa@47.99.xxx.xxx -o ServerAliveInterval=1
-
在内网机B上远程连接内网机A
-
$ ssh bbb@47.99.xxx.xxx -p 2333 注意:此时的user是内网机A的用户名,因此待会输入的密码是user的密码. IP是公网机的IP。 登录成功后在阿里云ECS上执行lsof -i:2333 可以看到如下信息: root@iZbp15flh0q5ay0cugwahlZ:~# lsof -i :2333 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1358 root 9u IPv4 28364 0t0 TCP *:2333 (LISTEN) sshd 1358 root 10u IPv4 29393 0t0 TCP iZbp15flh0q5ay0cugwahlZ:2333->222.195.xxx.xxx:38434 (ESTABLISHED)
-
-
设置内网机A的autossh自启动
sudo vim /etc/systemd/system/autossh.service 编写如下信息: [Unit] Description=autossh After=network-online.target [Service] Environment="AUTOSSH_GATETIME=0" User=userA WorkingDirectory=/home/userA ExecStart=/usr/bin/autossh -M 12345 -gnvNTR 47.99.xxx.xxx:2333:localhost:22 aaa@47.99.xxx.xxx -o ServerAliveInterval=1 [Install] WantedBy=multi-user.target
注意: 参数为
-gnvNTR
而不是-fgnvNTR
,因为在systemctl中不支持f参数,不要复制粘贴错了,会无法运行的sudo systemctl daemon-reload sudo systemctl start autossh.service sudo systemctl enable autossh.service sudo systemctl status autossh
参考链接:
Ubuntu 阿里云 ssh反向代理 内网穿透 autossh自启动