科学上网与本地代理
科学上网与本地代理
为了某些学习目的,访问国外的一些优秀网站速度会很慢,甚至无法访问,无法查阅到想要的“资料”。
在这种时候就可能需要一些代理手段,帮助我们更科学地上网📶。
常见的有 ByWave 和 Clash,都是挺不错的选择,流量包推荐 性价比机场.com,详情请自行了解。
当然,如果比较感兴趣、喜欢动手的朋友,也可以自己搭建一个代理服务(只能自己偷偷用哦,不然要被请去喝茶了)。
如何自建代理服务
注意
以下方案需要准备两台服务器,一台国内,一台国外,并且需要对 Linux运维 和 采购云服务器 有一定的熟练度。
准备一台 海外服务器,假设名为
服务器A(IP 为123.123.123.123),并设置安全组开放10123端口(开放端口很重要,同时也很危险,详见 放行端口的步骤)。然后在
服务器A上搭建 v2ray 服务,跟着说明文档配置,并设置端口为10123。如果步骤没问题,你将会获得一些配置参数和 v2ray 协议链接。然后下载一个 代理客户端,并把协议链接录入测试
123.123.123.123.10123的代理服务是否可用。
相关信息
海外服务器的采购可以使用 阿里云 等国内厂商没有问题,但依然推荐一些国外厂商的云主机,比如 硅云,也可以去找一些小众更便宜的云服务器提供商。
服务器地点一般选择 香港、新加坡 等靠近国内的延迟会比较低。
放行端口的步骤
以阿里云服务器为例,版本为 CentOS 7.x,首先设置安全组,添加 10123 端口为公开:

然后还要在服务器上,开启防火墙并开放指定端口:
- 查看防火墙状态并开启
systemctl status firewalld
如果是 active(dead) 就表示停止,需要开启防火墙
systemctl start firewalld- 开放指定端口
firewall-cmd --zone=public --add-port=10123/tcp --permanent参数解释
| 参数 | 注释 |
|---|---|
| –zone=public | 作用域,公开的 |
| –add-port=10123/tcp | 添加端口,格式为:端口/通讯协议 |
| –permanent | 永久生效,没有此参数重启后失效 |
- 重启防火墙
firewall-cmd --reload- 查看端口号命令
查看端口是否放行成功
firewall-cmd --list-all # 查看防火墙规则
或者
firewall-cmd --list-ports # 查看防火墙端口查看当前所有 tcp 端口信息
netstat -ntlp查看 10123 端口使用情况
netstat -ntulp | grep 10123- 测试端口是否能连接上
写上 IP 地址和端口,内容为 ip:端口,示例:123.123.123.123:10123,然后点击 Go 或者直接回车
如果显示 successful,证明端口能连接;如果显示 failed,那就是无法连接上端口。
更简单的办法
正常来说,上面这些步骤执行后,端口一般都能连接上,如果使用上述地址测试后仍然无法连接,可能还存在外部防火墙没关或者端口放行方向不正确等问题。
为了更方便地管理防火墙和端口规则,推荐使用宝塔面板来操作。
配置好宝塔后,找到 安全 界面,添加端口规则,输入 10123 端口点击确定,其他保持默认即可。

保护你的代理服务器
注意
如果你已经自建代理服务并用起来了,但是别开心的太早,因为 123.123.123.123 的 IP 可能过几天就会被 GFW 扫描并封禁。
虽然你可以更换 IP ,但是这毕竟很麻烦,而且并不安全,而且更换 IP 会产生一定的费用。
这个时候你需要采用如下做法来保护你的海外服务器以及 IP。
再准备一台国内的服务器,假设名为
服务器B(IP为456.456.456.456),并设置安全组开放20456端口。在
服务器B中安装 Nginx 并添加如下配置:
stream {
upstream v2ray {
server 123.123.123.123:10123;
}
server {
listen 20456;
proxy_pass v2ray;
ssl_preread on;
}
}配置解释
这一步的意思是:将 国内服务器B 中来自 20456 端口的请求全部转发给 国外服务器A 的 10123 端口。
详情
这一步的意思是,在其它设置不变的情况下,将原本的 服务器A 的地址和端口换成 服务器B 的。
到这一步之后,你每次使用代理客户端时,实际上全都是在请求国内的服务器,这时 GFW 的扫描不会发觉任何异常,也无法封禁国内 IP。
- 修改
服务器A的安全组,在宝塔上配置,让10123端口只允许 IP 为456.456.456.456的机器访问。

详情
到这一步之后 GFW 扫描 服务器A 就不会发现任何异常,毕竟这个端口的安全组会阻拦 GFW 的访问,表面看它就是一个平平无奇的服务器而已。
然后国内的 服务器B 本身就在国内,不受 GFW 约束。
日常的代理客户端,只会被抓到它在请求国内服务器,则 IP 地址安全。
当然,两台服务的成本确实会有点点高,实测这种方案最为安全和稳定。
本地代理客户端
https://github.com/v2rayU/v2rayU
Windows:https://github.com/2dust/v2rayn/releases
下载v2rayN-With-Core.zip和v2rayN.zip并解压,然后将前者目录中的内容覆盖替换到后者目录中,然后就可以双击v2rayN.exe文件进行使用了。Android:https://github.com/2dust/v2rayNG/releases
下载对应的apk文件安装即可。如果打不开或安装失败就多换几个安装包试试。MacOS:https://github.com/yanue/V2rayU/releases
下载对应的.dmg文件安装即可。如果打不开或安装失败就多换几个安装包试试。
Windows 客户端配置如下:
找到「服务器」菜单,点击 添加[VMess]服务器

输入代理的 IP 和端口,像上面我们配置了请求转发,那这里就填
国内服务器B的配置,然后点击生成用户 ID,最后点击确定。
确定后就会自动开始代理服务了。然后系统代理选择
自动配置系统代理(这样就不用到设置里面配置代理了),路由选择绕过大陆(这样如果国内能访问就优先用国内线路,访问不了再用代理线路)。因为我自己有加速器,科学上网的需求也不是很高,所以用的国外服务器配置很一般,网速有点慢🤣.

客户端配置 
本地已自动配置
