梦想 -- 我有一台国外的VPS,我想完整的看看这个世界

栏目: 服务器 · 发布时间: 5年前

内容简介:现在国外的可以不受限的访问国外的技术网站。大概的实现思路是这样的:

现在国外的 VPS(虚拟私有主机或叫它云主机) 越来越便宜甚至免费。阿里云、Ucloud也提供在香港的云主机,这些云主机到国内的网络优化的极好。是不是有想法,利用一下这台在国外的云主机去“看看完整的外面的世界”呢?

看懂并实际操作这篇文章的意义

可以不受限的访问国外的技术网站。

看懂并实际操作这篇文章所要的知识

  • 有windows基础知识,会在上面安装软件
  • 使用过ssh client端软件远程连接过 linux 服务器
  • 有linux系统的基础知识,至少会打命令及在上面安装软件
  • 对TCP协议有最基本的了解

单台国外云主机如何实现“完整看世界”

大概的实现思路是这样的:

  1. 用户在本地台式机和国外服务器之间使用 puttyXshell 或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是怎么样工作的:

    梦想 -- 我有一台国外的VPS,我想完整的看看这个世界
  2. 通过上述方法连接在国外服务器上安装的 SS服务端Shadowsocks-libev ,实现“完整看世界”。一图胜千言,先来系统架构图吧:

梦想 -- 我有一台国外的VPS,我想完整的看看这个世界

国外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客户端的连接地址和端口

设置如下图:

梦想 -- 我有一台国外的VPS,我想完整的看看这个世界

在你的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参数

具体如下图:

梦想 -- 我有一台国外的VPS,我想完整的看看这个世界

最后进行连接测试

在运行SS客户端后,右击电脑(以windows为例)SS 飞机图标:

  • Enable system proxy 网站访问走SS代理,不勾的话,是不使用SS代理
  • Start on Boot 电脑启动后自动启动
  • Servers 选择你配置好的连接 127.0.0.1:10001

梦想 -- 我有一台国外的VPS,我想完整的看看这个世界

  • Modes – PAC 模式是国内直接访问,国外走我们的代理; Global 模式是全部都走我们的国外代理,这个模式下访问国内网站会比较慢。

    梦想 -- 我有一台国外的VPS,我想完整的看看这个世界

最后,打开Global模式,访问 ip138.com 看一下,我们的出口IP是否是我们国外代理服务器的IP,如果是,那就做对了。再打开 google ,看是否可以正常访问,如果是,那就做对了。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C++编程思想(第1卷)

C++编程思想(第1卷)

[美] Bruce Eckel / 刘宗田、袁兆山、潘秋菱 / 机械工业出版社 / 2002-9 / 59.00元

《C++编程思考》第2版与第1版相比,在章节安排上有以下改变。增加了两章:“对象的创建与使用”和“C++中的C”,前者与“对象导言”实际上是第1版“对象的演化”一章的彻底重写,增加了近几年面向对象方法和编程方法的最瓣研究与实践的有效成果,后者的添加使不熟悉C的读者可以直接使用这本书。删去了四章:“输入输出流介绍”、“多重继承”、“异常处理”和“运行时类型识别”,删去的内容属于C++中较复杂的主题,......一起来看看 《C++编程思想(第1卷)》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试