背景
工作电脑,连接电子政务内网,访问权限受限。如无法访问外网的ssh端口,上班时间访问股票网站等等。
买了一个无线网卡,准备连接自己的手机的热点,以实现自由访问互联网,此前在windows环境下用得很方便,有需要的时候切换至无线网卡即可。
后来因为要研究机器学习,将操作系统换成了Ubuntu,后来发现该无线网卡不支持Linux的驱动。所以,无障碍访问互联网,受到了限制。
解决思路
总体的方向是在一台能够使用无线网卡的windows上建立一个代理,将ssh、特殊网站等原本受限的访问重定向到windows上,通过linux-windows-无线网卡-手机热点
这一路径无障碍访问互联网。
- ubuntu主机名称:hp-z440(该主机名后面会在截图里多次出现,代表是在linux上操作)
- windows虚拟机的IP: 192.168.122.76
使用动态端口转发实现网页不受限访问
- 在Ubuntu下安装qemu的windows 10虚拟机
- 在虚拟机中安装openssh服务器,在应用和功能-可选功能中,选择openssh即可。并建立
- 在ubuntu下,通过ssh动态端口功能,建立一个socks5代理隧道:
ssh -CNf -D 1111 cyf@192.168.122.76
C代表压缩,N代表不执行远程命令直负责转发,f代表在后台运行。
运行该命令,并输入windows系统的cyf用户密码,即完成动态端口转发隧道的建立。
可以使用:telnet localhost 1111来测试该端口确定已经打开。

然后,就可以在浏览器中设置socks5代理地址为:127.0.0.1:1111,测试成功。
通过本地转发访问远程服务器的22端口
基本思路是先在可以访问远程22端口的windows机器上建立一个连接,使得在本地监听一个端口2222,然后使得所有访问该端口的流量,全部转发到远程服务器的22端口。命令如下:
ssh cyf@192.168.122.76 -N -L 2222:remotehost:22 &
其中,cyf@192.168.122.76代表连接装有无线网卡的windows,2222:remotehost:22代表在本地监听2222端口,并通过192.168.122.76将所有流量转发至remotehost的22端口。
&:代表在后台运行。
在ubuntu主机上测试:
ssh localhost -p 2222

成功!