Linux反向隧道:修订间差异

来自牛奶河Wiki
跳到导航 跳到搜索
(创建页面,内容为“假设有机器 C 和 T,均为公网IP。此时 C 无法向 T 发起连接。 现有一公网 IP 机器 P,那么 C 与 T 均可主动向 P 发起连接。此时可透过 P,完成 C 向 T 发起连接。需要: #Env:T 可用证书连接到 P #Env:P 的 sshd_config 配置打开转发功能:GatewayPorts yes(重启 sshd) #Env:P 的 firewall 打开相应端口 #T 向 P 主动建立一个 SSH 隧道,如:将 P 的 10022 端口转发到 B 的…”)
 
无编辑摘要
第1行: 第1行:
假设有机器 C 和 T,均为公网IP。此时 C 无法向 T 发起连接。
有内网机器 C 和 T,均无公网IP,此时 C 无法向 T 发起连接。


现有一公网 IP 机器 P,那么 C 与 T 均可主动向 P 发起连接。此时可透过 P,完成 C 向 T 发起连接。需要:
现有一公网 IP 机器 P,C 与 T 均可主动向 P 发起连接。此时可透过 P,完成 C 向 T 发起连接。需要:


#Env:T 可用证书连接到 P
#Env:T 可用证书连接到 P
#Env:P 的 sshd_config 配置打开转发功能:GatewayPorts yes(重启 sshd)
#Env:P 的 sshd_config 配置打开转发功能:GatewayPorts yes(重启 sshd)
#Env:P 的 firewall 打开相应端口
#Env:P 的 firewall 打开相应端口
#T 向 P 主动建立一个 SSH 隧道,如:将 P 的 10022 端口转发到 B 的 22 端口
#T 向 P 主动建立一个 SSH 反向隧道,如:将 P 的 10022 端口转发到 T 的 22 端口
  # 在 T 上建立反向隧道
  # 在 T 上建立反向隧道
  ssh -T -f -N -g -R :10022:127.0.0.1:22 PublicIP
  ssh -T -f -N -g -R :10022:127.0.0.1:22 PublicIP

2023年12月18日 (一) 15:53的版本

有内网机器 C 和 T,均无公网IP,此时 C 无法向 T 发起连接。

现有一公网 IP 机器 P,C 与 T 均可主动向 P 发起连接。此时可透过 P,完成 C 向 T 发起连接。需要:

  1. Env:T 可用证书连接到 P
  2. Env:P 的 sshd_config 配置打开转发功能:GatewayPorts yes(重启 sshd)
  3. Env:P 的 firewall 打开相应端口
  4. T 向 P 主动建立一个 SSH 反向隧道,如:将 P 的 10022 端口转发到 T 的 22 端口
# 在 T 上建立反向隧道
ssh -T -f -N -g -R :10022:127.0.0.1:22 PublicIP

参数说明:

  • -T 不分配伪终端
  • -f 使 ssh 进程在用户输入密码之后转入后台运行
  • -N 不执行远程指令,即代理服务器不需执行指令,只作端口转发
  • -g 允许代理服务器连接到本地转发端口
  • -R 将代理服务器指定端口上的连接转发到本机端口
  • :10022:127.0.0.1:22表示本机回环接口(127.0.0.1,也可使用本机其他网络接口的地址,比如以太网 IP 或 WiFi IP)的 22 端口连接到远程主机的 10022 接口,因远程主机 10022 绑定的地址为空,所以远程主机会监听其所有网络接口的 10022 端口