Featured image of post 搭建科学上网服务器(仅供学习参考使用)

搭建科学上网服务器(仅供学习参考使用)

[TOC]

本文仅仅供学习参考使用,无任何盈利性质,单纯技术分享,不承担任何法律责任,所有使用该技术的人员引发的后果自行承担相应后果

本文仅分享科学上网技术,用来学习计算机知识,查询资料,比如医学、计算机、绘画等各领域学习使用

请勿私自搭建进行违法犯罪活动

一、准备工作

1、vps厂商选择

搭建一个科学上网服务器,那么必然是需要一个云服务器作为物理基础,才能进行搭建,这里就应用Github上mmhunter3515大佬整理的VPS厂商,整理的很详细,在这里就列举几个

  • Vultr:https://www.vultr.com/
  • Lightnode:ttps://www.lightnode.com/
  • Google:https://cloud.google.com/
  • AWS:https://aws.amazon.com/

2、注册账号与充值

本文选择vultr厂商,这个厂商的数据中心较多,于是使用的人也就很多,很多人选择这个厂商的服务器搭建网站之类,于是出现一个就封锁一个ip,就造成了vultr厂商的很多ip被封了,所以,在创建实例的时候,就会出现很有可能无法连接,因为被封了。本文只是为了演示技术,就还是选择vultr厂商(其实是没有钱去其他网站充值了,也就这个网站还有几刀可以嚯嚯)

下面是vultr的主界面

image-20250214210749764

首先需要一个账号,点击右上角的Sign up自行注册一个账户,推荐使用Gmail邮箱

注:关于注册账号和充值部分,厂家可能会不定期给一些优惠券或者是返还之类,这个就需要大家执行去翻阅查找资料了

image-20250214210859432

注册完成后,需要充值,最低需要$10,支持支付宝充值

image-20250214211413313

二、开始创建ECS实例

1、部署服务器

选择ProductsCompute界面,可以看到Deploy Server

image-20250217153905149

创建实例

image-20250217154218405

关闭自动备份后,价格就降低几美元(一方面省钱,另外一方面其实也没有那个必要)

image-20250217154326460

然后点击Configure Software进入到镜像选择的界面,系统镜像选择,一般选择CentOS,版本的话,选择最新版本就好

image-20250217154443360

image-20250217154559420

点击开始部署后,稍等两秒就会自动跳转到实例列表界面,创建实力耗时约1min

image-20250217155649854

2、测试ip连通性

当实例创建完成后,会自动分配一个ip,点击实例名称,进入详细界面,就可以看到当前实例的root账户和密码

image-20250217160110842

复制ip地址,如果是macos电脑或者是linux打开终端,如果是windows电脑,就打开cmd,使用ping命令测试一下能否ping的通,如下图,就表示ping的通,可以ssh连接

image-20250217160308968

如果你创建的实例,分配的ip地址,无法ping通,那么就销毁当前实例,再重新创建一个实例,更换国家或者地区,多尝试几次,总归是可以创建成功的。

3、ssh登陆实例

如果你的电脑是macos或者是linux,那么直接使用终端就可以直接进行ssh登陆了。如果你的电脑是windows,那么也能够使用cmd进行ssh登陆,或者是安装像xshellPuTTYSecureCRTMobaXterm这样的ssh工具(请自行下载和安装)

4、安装必要软件和镜像库

执行以下命令,安装相关软件,以及epel库

1
2
3
4
5
6
sudo yum install -y epel-release
sudo yum clean all 
sudo yum makecache
sudo yum update -y 
sudo yum upgrade
sudo yum install -y wget vim git curl zlib* gcc gcc-c++ automake autoconf libtool make

三、一键部署脚本

1、下载并执行管理脚本

CentOS/Debian/Ubuntu ShadowsocksR一键部署管理脚本,执行命令

1
2
3
4
5
6
# 下载一键安装脚本
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR.sh
# 增加可执行权限
chmod +x shadowsocksR.sh
# 开始执行
./shadowsocksR.sh 2>&1 | tee shadowsocksR.log

设置密码,直接回车,默认密码即可

image-20250217161541237

设置端口,直接回车,默认端口即可

image-20250217161621766

加密方式,直接回车,使用默认的加密协议即可

image-20250217161658665

设置协议,直接回车,默认协议即可

image-20250217161723082

设定混淆方式,default 为默认混淆,直接回车,默认即可

image-20250217161814570

安装成功,按任意键,自动启动

image-20250217161856775

然后会自动安装一些脚本

image-20250217161927739

最终,安装完成,会显示刚才所配置的信息,将下面的配置信息保存好,以便客户端使用。

image-20250217162052524

安装过后如果想要修改,运行如下相关命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# 启动
/etc/init.d/shadowsocks start
# 停止
/etc/init.d/shadowsocks stop
# 重启
/etc/init.d/shadowsocks restart
# 状态
/etc/init.d/shadowsocks status
# 配置文件路径
/etc/shadowsocks.json # 修改文件用vi 或者 vim命令,使用方法百度
# 日志文件路径
/var/log/shadowsocks.log
# 安装路径
/usr/local/shadowsocks/shadowsoks
# 卸载
./shadowsocksR.sh uninstall

2、查看状态并启动

执行命令/etc/init.d/shadowsocks status查看状态

1
2
root@vultr:~# /etc/init.d/shadowsocks status
ShadowsocksR is stopped

执行命令/etc/init.d/shadowsocks start启动服务

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
root@vultr:~# /etc/init.d/shadowsocks start
Traceback (most recent call last):
  File "/usr/local/shadowsocks/server.py", line 32, in <module>
    from shadowsocks import shell, daemon, eventloop, tcprelay, udprelay, \
  File "/usr/local/shadowsocks/../shadowsocks/shell.py", line 26, in <module>
    from shadowsocks.common import to_bytes, to_str, IPNetwork, PortRange
  File "/usr/local/shadowsocks/../shadowsocks/common.py", line 27, in <module>
    from shadowsocks import lru_cache
  File "/usr/local/shadowsocks/../shadowsocks/lru_cache.py", line 44, in <module>
    class LRUCache(collections.MutableMapping):
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'collections' has no attribute 'MutableMapping'
Starting ShadowsocksR failed

在启动时候出现报错,根据报错信息查看,是由于python的collections库没有MutableMapping属性,这是由于在python3中collections的模块有所变动,需要把

1
collections.MutableMapping

变成

1
collections.abc.MutableMapping

根据报错信息可以明确看到,是由于/usr/local/shadowsocks/lru_cache.py文件中,第44行报错,那么就修改这个位置,增加abc,修改后如下图,然后保存并退出

image-20250217163111355

再次执行命令/etc/init.d/shadowsocks start启动服务,此时启动成功,报错信息消失

1
2
3
4
5
6
root@vultr:~# /etc/init.d/shadowsocks start
IPv6 support
2025-02-17 08:31:52 INFO     util.py:94 loading libcrypto from libcrypto.so.3
2025-02-17 08:31:52 INFO     shell.py:74 ShadowsocksR SSRR 3.2.2 2018-05-22
started
Starting ShadowsocksR success

再次执行命令/etc/init.d/shadowsocks status查看状态,状态正常

1
2
root@vultr:~# /etc/init.d/shadowsocks status
ShadowsocksR (pid 50662) is running...

3、关闭/放行防火墙

在服务启动之后,系统防火墙是启动的状态,并未放行其对应的端口号,需要关闭防火墙,或者是在防火墙中放行端口,这样客户端才能够访问,否则无法使用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# 查看防火墙状态
root@vultr:~# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset: enabled)
     Active: active (running) since Mon 2025-02-17 09:06:05 UTC; 16s ago
 Invocation: 80def4cc4c7442b0b4209d49a4a12d4b
       Docs: man:firewalld(1)
   Main PID: 50936 (firewalld)
      Tasks: 2 (limit: 10802)
     Memory: 25.4M (peak: 27M)
        CPU: 211ms
     CGroup: /system.slice/firewalld.service
             └─50936 /usr/bin/python3 -sP /usr/sbin/firewalld --nofork --nopid

Feb 17 09:06:05 vultr.guest systemd[1]: Starting firewalld.service - firewalld - dynamic firewall daemon...
Feb 17 09:06:05 vultr.guest systemd[1]: Started firewalld.service - firewalld - dynamic firewall daemon.
1
2
# 查看防火墙已放行的端口,这里是空的
root@vultr:~# firewall-cmd --list-ports
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 方法一
# 安装服务管理脚本时,创建的端口是16782,这里在防火墙中为该端口永久放行
root@vultr:~# firewall-cmd --zone=public --add-port=16782/tcp --permanent
success

# 防火墙配置完成后,重新加载
root@vultr:~# sudo firewall-cmd --reload
success

# 再次查看防火墙放行端口
root@vultr:~# sudo firewall-cmd --list-all
public (default, active)
  target: default
  ingress-priority: 0
  egress-priority: 0
  icmp-block-inversion: no
  interfaces: enp1s0
  sources:
  services: cockpit dhcpv6-client ssh
  ports: 16782/tcp   # 已放行的端口
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 方法二
# 关闭防火墙
root@vultr:~# systemctl stop firewalld
root@vultr:~#

# 查看防火墙状态
root@vultr:~# systemctl status firewalld
○ firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset: enabled)
     Active: inactive (dead) since Mon 2025-02-17 09:14:30 UTC; 33s ago
   Duration: 8min 25.285s
 Invocation: 80def4cc4c7442b0b4209d49a4a12d4b
       Docs: man:firewalld(1)
    Process: 50936 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
   Main PID: 50936 (code=exited, status=0/SUCCESS)
   Mem peak: 29.3M
        CPU: 390ms

Feb 17 09:06:05 vultr.guest systemd[1]: Starting firewalld.service - firewalld - dynamic firewall daemon...
Feb 17 09:06:05 vultr.guest systemd[1]: Started firewalld.service - firewalld - dynamic firewall daemon.
Feb 17 09:14:30 vultr.guest systemd[1]: Stopping firewalld.service - firewalld - dynamic firewall daemon...
Feb 17 09:14:30 vultr.guest systemd[1]: firewalld.service: Deactivated successfully.
Feb 17 09:14:30 vultr.guest systemd[1]: Stopped firewalld.service - firewalld - dynamic firewall daemon.

4、下载客户端

Mac:https://github.com/shadowsocksr-backup/ShadowsocksX-NG/releases

Win:https://github.com/shadowsocksr-backup/shadowsocksr-csharp/releases

iPhone:到商店里安装FirstWingy、potatso lite。(搞一个美国appleID)

本人电脑是MacOS,就以Mac为例,下载ShadowsocksX-NG-R8.dmg,打开,然后双击绿色的ShadowsocksX-NG-R8

image-20250217163839136

双击完后,会提示当前软件不安全,此时需要打开电脑设置-Privacy & Scurity,在最下面会出现这个软件的信息,然后点击Open Anyway,输入电脑密码就可以打开

image-20250217163440254

打开完成后,电脑的右上角图标就会出现一个小飞机图标,这个就是shadowsocks

image-20250217164144945

然后点击小飞机–Servers–Server Preferences

image-20250217164310724

image-20250217164655640

image-20250217164813161

啟動成功後,這裡以訪問Google和Youtube為例,

image-20250217165751148

image-20250217165809442

使用搜索一個世界上最受歡迎的網站

image-20250217165927212

訪問全球最大同性交友網站Github

image-20250217170019024

Licensed under CC BY-NC-SA 4.0
Built with Hugo
Theme Stack designed by Jimmy