内容简介:现在国外的可以不受限的访问国外的技术网站。大概的实现思路是这样的:
现在国外的 VPS(虚拟私有主机或叫它云主机) 越来越便宜甚至免费。阿里云、Ucloud也提供在香港的云主机,这些云主机到国内的网络优化的极好。是不是有想法,利用一下这台在国外的云主机去“看看完整的外面的世界”呢?
看懂并实际操作这篇文章的意义
可以不受限的访问国外的技术网站。
看懂并实际操作这篇文章所要的知识
- 有windows基础知识,会在上面安装软件
- 使用过ssh client端软件远程连接过 linux 服务器
- 有linux系统的基础知识,至少会打命令及在上面安装软件
- 对TCP协议有最基本的了解
单台国外云主机如何实现“完整看世界”
大概的实现思路是这样的:
-
用户在本地台式机和国外服务器之间使用 putty 或 Xshell 或SecureCRT或 MobaXterm 建立一个 ssh端口转发 ( ssh port forwarding )。利用ssh端口转发可以通过ssh的加密通道包裹SS的协议,成功穿越G-F-W对SS协议的检测。即使让SS跑在公网上,也不会被G-F-W封阻,因为它的外面被ssh 加密 tunnel包裹着,不会被发现,而ssh 加密 tunnel可以成功通过G-F-W的。使用ssh 加密tunnel 来包裹SS协议,可以最大限度的提供SS在公网上传输的稳定性,解决之前SS客户端用公网直连国外的SS服务器端老断的问题。来,看这张图,看看ssh port forwarding是怎么样工作的:
-
通过上述方法连接在国外服务器上安装的 SS服务端Shadowsocks-libev ,实现“完整看世界”。一图胜千言,先来系统架构图吧:
国外VPS上安装SS服务端, 以Ubuntu16.04-LTS linux系统版本为例:
大家可以看一下 Shadowsocks-libev 上的介绍,上面说得还是很详细的。
软件安装命令如下(以Ubuntu16.04-LTS linux系统为例):
sudo apt-get install software-properties-common -y sudo add-apt-repository ppa:max-c-lv/SS-libev -y sudo apt-get update sudo apt install SS-libev
国外VPS上启动SS服务器端
SS服务器端软件启动命令如下:
ss-server -p 10001 -k yourpassword -m rc4-md5 -t 60 -f /tmp/ss-10001.pid -n 3000 -u ###参数说明: -p 10001 服务端监听的TCP端口号,用来给客户端连接用的 -k yourpassword 你的客户端连上来的密码 -m rc4-md5 你的客户端连上来的加密方法 -t 60 超时时间 -f pid 文件名 -n 最大打开文件数 -u 允许UDP转发
在ssh client(你的windows电脑)上设置ssh 端口转发,我这边以SecureCRT 这个ssh client为例,其它的类似
在你国外服务器的ssh连接设置的session options–PortForwarding设置一个ssh端口转发,Local上设置ip 127.0.0.1,端口 10001, Remote上设置 端口10001。 你可以这个理解上面设置,把本机(windows电脑)上的127.0.0.1的10001端口上所有数据通过ssh 加密tunnel转发到你的国外VPS的10001端口上,这个10001端口也是你国外VPS的SS服务器的监听端口。 设置好后,请在连接SS前,先用这个ssh客户端连接这台国外linux服务器,建立加密ssh tunnel。在和服务器建立ssh tunnel连接后,在本地window系统会启一个 127.0.0.1:10001的TCP端口,这个127.0.0.1:10001就是SS客户端的连接地址和端口
设置如下图:
在你的windows 电脑或手机上安装SS客户端,并做设置
在你的windows 电脑或手机上安装SS客户端, 下载地址 。
软件的安装就不多说了,按给的包可以在不同的平台上安装,电脑手机都可以。
手机端运行ssh 端口转发可能麻烦一些,但也可以实现,这里就不做更多说明了。解决手机的端SS访问的问题,我的方法是在国内和国外各运行一台Ubuntu系统的VPS,在两台VPS之间打一个加密ssh tunnel,然后手机用SS客户端直连国内VPS的ssh转发端口。这样,就解决了手机端SS运行ssh问题,会多一些成本 ,但方便很多。
这个算题外话,国内和国外两台linux服务器之间打一个加密的ssh tunnel 命令如下:
ssh -o ServerAliveInterval=60 -o TCPKeepAlive=yes -f -N -L inner_server_ip:10001:localhost:10001 root@outer_server_ip ### 解释: -o ServerAliveInterval=60 -o TCPKeepAlive=yes 保持ssh长连接并60秒检测一下 inner_server_ip 国内服务器外网ip outer_server_ip 国外服务器外网ip -L inner_server_ip:10001:localhost:10001 实现一个国内服务器TCP 10001端口到国外服务器TCP 10001 端口的ssh 端口转发
在完成安装后,运行软件并做如下设置:
- Server Addr: 127.0.0.1,因为你用了ssh port forwarding
- Server Port: 10001 你在启动SS服务器时设置的端口 -p参数
- Password: 你在启动shadowsoks服务器端时设置的密码 -k参数
- Encryption: 你在启动shadowsoks服务器端时设置的加密方式 -m参数
具体如下图:
最后进行连接测试
在运行SS客户端后,右击电脑(以windows为例)SS 飞机图标:
- Enable system proxy 网站访问走SS代理,不勾的话,是不使用SS代理
- Start on Boot 电脑启动后自动启动
- Servers 选择你配置好的连接 127.0.0.1:10001
-
Modes – PAC 模式是国内直接访问,国外走我们的代理; Global 模式是全部都走我们的国外代理,这个模式下访问国内网站会比较慢。
最后,打开Global模式,访问 ip138.com 看一下,我们的出口IP是否是我们国外代理服务器的IP,如果是,那就做对了。再打开 google ,看是否可以正常访问,如果是,那就做对了。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 曾梦想 if-else 走天涯?看看“责任树模式”优化
- 梦想的另一支翅膀—Creator插件开发
- OneGame V1.0.2 发布,让运营游戏不再是梦想
- 梦想中的海外码农生活到底什么样子的?
- 社区初鸣,梦想始兴 - 腾讯游戏DBA携手MariaDB开源起航
- 一场邂逅,已历三年——规仙人创意由梦想照进现实
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。