前言

调整数据库的时候突然想起来SSH协议还能用来做端口映射,查了一些资料,简单的做个笔记。

位置

打开 连接属性 -> SSH -> 隧道
XShell连接属性

如图,上方是TCP/IP转移,也就是端口映射,下方是X11转移,可以在本地显示服务器上的窗口

  1. TCP/IP转移:
    添加规则

L:运行XShell的一端,R:通过SSH连接的一端

  • 类型:
    Local(Outgoing):将服务器的端口映射到本机(出站),L -> R
    Remote(Incoming):将本机的端口映射到服务器(入站),R -> L
    Dynamic(SOCKS4/5):创建一个SOCKS信道,是个双向代理,L <> R

  • 源主机和侦听端口:
    L端映射的地址,类型为Dynamic时代表SOCKS协议使用的端口

  • 仅接受本地连接:
    这个没什么好说的,勾选,或者源主机填localhost效果一样。

  • 目标主机和目标端口:
    R端映射的地址,类型为Dynamic时无需设置

  1. X11转移:
    这个功能需要在服务端安装X桌面,在本地也需要安装Xmanager,装好以后可以在本地显示服务器的窗口。
    在本机显示XClock窗口

示例

  • 将服务器的MySQL映射到本地:

    在服务器上运行有MySQL,并且只允许本地访问
    类型选Local,源主机设置为localhost:12345,目标主机设置为localhost:3306
    这样在本机就能通过12345端口访问服务器的数据库了
    将服务器的MySQL映射到本地

  • 将本地MiniWeb映射到服务器

    在本机运行有MiniWeb,因为NAT的关系没法从外网直接访问
    类型选Remote,源主机设置为localhost:8000,目标主机设置为localhost:8000
    这样在服务器就能通过8000端口访问本地的Web服务了,并且从MiniWeb的日志能够看出流量都来自本机
    将本地Web服务映射到服务器

  • 创建SOCKS通道

    类型选Dynamic,源主机端口就是SOCKS协议端口
    在本机使用浏览器插件或者其他支持SOCKS协议的软件就能通过服务器上网了,没什么好说的。

最后修改:2019 年 11 月 30 日
Null