梦想 -- 我有一台国外的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 ,看是否可以正常访问,如果是,那就做对了。


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

查看所有标签

猜你喜欢:

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

UNIX系统编程: 通信、并发与线程

UNIX系统编程: 通信、并发与线程

【美】Kay Robbins、Steve Robbins / 师蓉 / 电子工业出版社 / 2018-5 / 198

《UNIX系统编程: 通信、并发与线程》是一本基于最新UNIX标准的完备的参考书,对UNIX编程的要点进行了清晰易懂的介绍,从一些用于说明如何使用系统调用的短小代码段开始,逐渐过渡到能帮助读者扩展自己技能水平的实际项目中。《UNIX系统编程: 通信、并发与线程》中对通信、并发和线程问题进行了深入探讨,对复杂的概念(如信号和并发)进行了全面且清晰的解释,还覆盖了与文件、信号、信号量、POSIX线程和......一起来看看 《UNIX系统编程: 通信、并发与线程》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

html转js在线工具
html转js在线工具

html转js在线工具