UNRAID篇三(下):SSH端口转发实现远程访问
在上篇里已经设置好Debian的虚拟机了,接下来本篇我们就来搞一下怎么通过ssh来访问内网的主机。
首先我要先讲一下SSH端口转发,然后再在UNRAID上实践。我不是专业的,所以讲的理论也是我所理解的部分。如果说的不对还请给我指正。
第一部分理论:SSH端口转发
端口转发的命令主要用到3个参数 -D、-L、-R
首先,是最简单的-D:动态转发
不是科班出身,也就不讲定义了。你可以把它理解成代理服务器,直接上图。
访问主机A的1080端口,就等于主机B去访问内网内的各个主机的不同端口。
第二,是-L: 本地端口转发
简单的说就是通过SSH连接主机B,把主机C的80端口转发到主机A的1080端口。
第三,是-R: 本地端口转发
简单的说就是通过SSH连接主机A,把主机C的80端口转发到主机A的1080端口。
最后,说一些注意事项
关于参数
参数-p,被登录的ssd服务器的sshd服务端口。这个参数用在ssh的连接端口不是22的情况。
参数-g,在-L/-R/-D参数中,是允许远端主机连接本地转发端口,如果不加这个参数,只允许本地主机建立连接。这个在我们的案例中是如果主机A这边还有其他的机器需要访问A的1080端口,从而使用我们搭建的这个通路时(可以把这个参数理解把A当做网关)。
参数-f,后台运行
参数-N,是不执行远端命令,在只是端口转发时这条命令很有用处。(单纯只做转发,不用ssh命令)
关于配置
ssh端口转发,一般情况ssh服务默认端口转发是开着的。如果没有开端口转发,需要手动修改sshd_config文件,修改AllowTcpForwarding项目。
ssh隧道长时间没有通信可能会被断开,需要手动修改sshd_config文件,修改ClientAliveInterval和ClientAliveCountMax项目。
第二部分应用
方法一:用ssh -D与虚拟机Debian建立连接。主机A设置代理访问内网的UNRAID。如图:
事前准备:Chrome浏览器安装代理插件
因为UNRAID在ie里使用经常会有些问题,所以建议使用chrome浏览器。Chrome代理插件安装方法如下:
Step1:下载SwitchyOmega插件
访问插件地址 https://github.com/FelisCatus/SwitchyOmega/releases,下载SwitchyOmega_Chromium.crx
Step2:修改SwitchyOmega_Chromium.crx扩展名crx?zip,解压缩SwitchyOmega_Chromium.zip
Step3:安装插件
正式开始,进行连接
Step1:ssh建立连接可以直接用CMD敲命令。(Win10已经默认安装了ssh客户端。)
或者用putty进行连接
Step2:设置Chrome代理,如图
Step3:用Chrome访问UNRAID内网IP地址
成功!
方法二:用ssh -L与虚拟机Debian建立连接。将UNRAID的端口映射到本机1080。如图:
Step1:ssh建立连接可以直接用CMD敲命令。(Win10已经默认安装了ssh客户端。)
或者用putty进行连接
Step2:在主机A的浏览器中输入127.0.0.1:1080访问UNRAID控制台。
也可以访问,成功!
总结:
用ssh -D或-L的方式可以创建安全连接访问UNRAID控制台,这样比暴露在公网上安全很多。其实讲到的-R也可以实现内网穿透,但是ssh时间长没有数据访问,连接会中断。没有frp稳定,不推荐使用-R的方式。所以这里就不讲-R的应用了。大家有兴趣可以自己设置一下。 |