HOME> 梅西世界杯图片> 解决网络连通性问题的一般方法. 最近有同学碰见一些网络问题,可能是因为一些众所周知的原因造成的。为了帮助大家可以…
{$vo.文章标题}
{$vo.文章标题}

解决网络连通性问题的一般方法. 最近有同学碰见一些网络问题,可能是因为一些众所周知的原因造成的。为了帮助大家可以…

admin
5087

解决网络连通性问题的一般方法最近有同学碰见一些网络问题,可能是因为一些众所周知的原因造成的。为了帮助大家可以将来不用特别依赖某个第三方。我介绍一下一种通行的解决方案。

基础原理假如从A地无法访问网站X,而这个网站却可以在B地访问。那么理论上我们可以使用B地的某一台机器作为桥梁,那么应该也能访问到网站X。

因此我们需要:

在B地找一个可以访问的机器(Server)在Server上部署“桥梁”软件在自己的机器(Client)上安装连接软件,并配置好连接Server的通行证哪儿去找Server以前要找一个Server是件很复杂的事情,但所幸现在云计算兴起之后,购买一个Cloud Server 比在淘宝上买东西还简单。

不知道云计算可以去Wiki去看看,相应的介绍,但在这里我们只是需要找一个B地的Server就好。下面列举一下可以使用的云服务商:

阿里云,主要是在国内,但也提供了香港和美国节点AWS/亚马逊,全球第一的云服务商,数据中心都在国外,新注册可以提供一年最低配服务器免费用,每个月15G免费流量。Azure/微软,全球第二的云计算,微软本身的开发者工具相当完善,而且易用度不错。通过加入Visual Studio Dev Essentials,可以获得每个月25美金的额度。Linode 和 DigitalOcean 老牌VPS厂商起家。提供高性价比的按月定流量套餐。推荐别人注册可以获得一定额度返现。部署“桥梁”软件确认好机器之后,就可以部署用作桥梁的软件了。Server上选择是 Linux 系统,所以需要了解一定的服务器和命令行的使用,如果不熟悉可以现通过Linux 命令行基础或者Learn the command line

通过服务商的说明,登陆机器之后:

更新系统

# CentOSsudo yum update# fedorasudo dnf update# ubuntusudo apt-get update安装软件

sudo pip install shadowsocks配置端口和密码

将下面文件内容中的your_port和your_password换成你自己的设置,然后粘贴到命令行中

cat < /etc/my_ss.json{"server":"0.0.0.0","local_port":1080,"port_password": { "your_port": "your_password"},"timeout":600,"method":"aes-256-cfb"}EOF如果你熟悉命令行,上面实际上是把内容写到了 /etc/my_ss.conf中,而且你可以在port_passwrod中添加多个端口和密码

注意:很多服务商会默认关闭除22端口以外的所有端口,需要去后台开启。

运行和启动服务器

程序可以运行在

前台,也就是在你打开的命令行中运行,输出业即时显示出来,但命令行结束了,程序业就一起结束了Daemon/服务进程,程序在服务起后台运行,当前链接结束之后也一直在运行。程序的状态和输出会由系统记录首先我们试下启动服务:

sudo ssserver -c /etc/my_ss.json --user nobody如果没有报错,那么这个时候服务在前台启动成功。如果有错误,现检查下前面的配置是不是正确,还有命令有没有拼写错误。记住标点符号需要特别关注,特别是粘贴的时候,必须要使用英文模式下的标点,比如"和“还有,和,是不一样的。如果都正确,那就要调研一下。

当然,我们要让它实际工作,肯定不能只工作再前台,但在前台工作可以方便看见日志,可以作为后面链接的时候调试的时候参考。

下面我们在让服务工作在Daemon模式:

# Startsudo ssserver -c /etc/my_ss.json --user nobody -d start# Stopsudo ssserver -c /etc/my_ss.json --user nobody -d stop细节参考:Archlinux的配置说明 ssserver --help

客户端配置当配置好服务器之后,我们在我们自己的机器(client)上装好客户端软件。这个软件有很多不同版本,图形化工具大家自行搜索。下面我介绍一下通用的命令行的安装方式。

和服务器上一样,我们还是使用Python。安装Python,我推荐使用miniconda。因为安装和管理都比较简单。

打开电脑上的 Terminal(macOS) / Powershell (Windows)

pip install shadowsocks然后打开记事本工具编辑按下面的格式编辑配置文件,server_xxx按你的Server情况替换掉

{"server":"server_ip","server_port": server_port,"local_port": 1080,"password": "server_password","timeout": 600,"method":"aes-256-cfb"}然后启动服务,将server_conf.json替换成上面的文

# 启动sslocal -c server_conf.json -d start# 关闭sslocal -c server_conf.json -d stop其他的选项可以参考;sslocal --help

访问网站X到这里桥梁都搭建好了,可以开始访问网站X了。之前的配置完毕后,通过你本地的socks5://127.0.0.1:1080 都会通过在B地的Server。

设置全局代理

在macOS网络设置和Windows的IE选项中可以设置全局的代理,设置socks5代理127.0.0.1:1080,可以让电脑上大多数软件都通过你的Server。

自动代理

设置全局,虽然方便。但不太灵活,因为访问哪些本来可以直接访问的网站的时候就慢了。要是可以自动判断哪些网站通过,或者不通过就好了。这里有些工具推荐给大家:

Proxy SwitchyOmega,Chrome上的插件,可以自己定义多个代理组合,推荐ShadowsocksX-NG / shadowsocks-win SS的GUI客户端,支持PAC代理,如果使用它可以替代命令行版本的。surge 和 proxifier 提供非常强大的网络分析和路由功能,需要付费