本专题将着重讲解如何使用VPS主机开启代理服务器的全套方法,包括主机选择、架设代理服务器以及客户端配置等
需要强调的是,用代理服务器翻墙只不过是众多科学上网的手段之一,相对于购买VPN服务或者代理软件来说,技术门槛相对高一点,但是一切尽在掌握的成就感是其它方式不能比拟的
马 上 开 始主机价格受内存大小、磁盘类型容量、网络流量等多种因素影响,将多种因素综合考虑选择性价比最高的才是明智之举
想要代理翻墙效果好,VPS网络要有保障,机房位于亚洲或者北美洛杉矶较佳,当然安全起见机房选在欧洲也无不可,ping值200ms左右即可
做代理服务器的VPS主机一般为Linux主机,服务商有两种实现方式:KVM和OpenVZ,注意选择KVM方式,因为此种类型主机才能更换内核和开启加速功能
推荐几款性价比较高的KVM主机,直接点击下面的连接购买(BuyVM主机性价比超高,不过2美元的机器一般抢不到)
帐号注册成功后,就会进入主机选择页面,其中需要设置的内容也比较少,非常简单
重要部分已经注明
Location 用于指定VPS主机位置,建议选择北美
Operating System 用于指定VPS主机操作系统
主机设置选择完毕后,点 继续 就完成了VPS主机的创建
帐号注册成功后,就可以购买主机,有三个机房可供选择,每个节点剩余的 VPS 数量会有显示,一般选择位于美国的节点
点击对应商品下而的购买按钮进入购买页面
输入必要内容:
Hostname(主机名):可以随意输入
Root Password(Root 用户密码):自行设定
NS1 Prefix(域名前缀):使用默认ns1即可
NS2 Prefix(域名前缀):使用默认ns2即可
全部内容输入完成后,点击 Continue 继续
之后会显示本次购买的详情信息,选择支付方式后(国内用户可以使用支付宝和微信),点击 Check Out 完成付款
购买完成后,新生成的 VPS 主机信息会通过邮件发送至帐户邮箱。如果需要修改 VPS 配置,会有专门的主机管理页面来配置主机,完成操作系统安装和其他配置
由于2 美元的主机不容易买到,示例采用 3.5 美元主机,除主机配置不同外,其它操作一致
BuyVM 主机创建完成后,可以通过主机管理页面更换 VPS 操作系统
进入管理页面 Stallion
页面包含 Overview、Console、Settings、Logs、Networking、Reinstall 和 CD-ROM 功能选项卡
Overview(总览):显示 VPS 概要信息
Console(控制台):进入 VPS 页面控制台
Settings(主机配置):配置主机启动及网络
Logs(操作日志):显示主机操作日志信息
Networking(网络):配置主机网络,包括域名反解(rDNS)设置
Reinstall(重装):重装安装 VPS 操作系统
CD-ROM(镜像):管理操作系统镜像,用于自定义安装系统
给 VPS 更换操作系统,选择 Reinstall 选项卡后,会显示出 BuyVM 预定义的操作系统模板
选择想要安装的操作系统,点击对应的 Reinstall 按钮即可进行操作系统重装
之后系统要求确认删除 VPS 所有数据以及输入 root 用户密码,输入完成后确认进行重装
帐号注册成功后,服务选择页面,点击对应主机的购按钮,进入主机设置页面
页面内容简单明了,关键信息可以显示中文,相当贴心
数据中心只位于荷兰,所以没有数据中心选择项
缴费方式可以月缴、季度缴及年缴等,签于国内的情况,境外 VPS 随时可能被屏蔽,建议月缴,反正多缴也没什么优惠
之后是选择 VPS 的操作系统,以翻墙工具来说没什么什么区别,根据个人喜好选择即可
最后设置一个主机名,点击继续按钮完成主机设置,并进入订单确认及付款
可选项:DDos Protection 为 主机 DDos 防护
可选项:Extra IPv4 address 为 额外 IPv4 地址
可选项:Extra Backup 为额外备份服务
可选项服务一般为额外收费项目,根据实际情况选购,如无特殊要求,可以不选
付款相对麻烦,最方便的方式是使用 PayPal
记得购买主机时需要进行身份认证,实在不行的话,发个工单给客服让认证通过就可以了
付款成功后,主机信息会发送至注册邮箱,包括主机 IP 地址及 root 账户密码等
事实上 Finalhosting 的主机性能相当好,网也比较稳定,运气好的话还会遇到 2 欧元的低价机,非常值得关注
本专题将着重讲解如何使用VPS主机开启代理服务器的全套方法,包括主机选择、架设代理服务器以及客户端配置等
目前比较好用的代理服务器软件无非就是Shadowsocks和V2Ray,SS由Python开发,可以通过pip安装,使用效果良好;V2Rary由Go语言开发,在并发和网络方便有语言级优势,并且V2R服务器同样支持SS协议,所以建议采用V2Ray
在VPS上开代理服务器大多采用命令行方式,不过命令比较简单,脚本自动化程度很高,不太需要过多配置
需要强调的是,用代理服务器翻墙只不过是众多科学上网的手段之一,相对于购买VPN服务或者代理软件来说,技术门槛相对高一点,但是一切尽在掌握的成就感是其它方式不能比拟的
V2Ray软件其实不区分客户端和服务端,软件会根据配置文件来扮演相应的角色
命令语句:
# bash <(curl -L -s https://install.direct/go.sh)
安装完成后,修改配置文件/etc/v2ray/config.json,主要修改内容如下:
{ "inbounds": [{ "port": 65442, "protocol": "vmess", "settings": { "clients": [ { "id": "Your vmess ID here", "level": 1, "alterId": 64 } ] } }], "inboundDetour": [ { "protocol": "shadowsocks", "port": 65443, "settings": { "method": "aes-256-cfb", "password": "Your shadowsocks password here", "udp": false } } ],
在"inbounds"键中指定V2Ray私有协议vmess侦听的端口和对应ID
在"inboundDetour"键中指定shadowsocks协议侦听的端口和对应密码
用户想访问被屏蔽的网站时,浏览器首先将数据送至代理客户端,客户端将数据以加密方式传送至服务端,再由服务端将用户数据送至目标网站
同样,代理服务端会接收目标网站的响应,并将响应数据以加密方式传递至用户客户端,再由客户端将响应数据解密反馈给用户浏览器
客户端可以通过pac文件来指引用户数据是否通过代理访问互联网,从而达到节省VPS流量目的
PS:此部分内容理解不了也没关系,不影响翻墙,了解一下有助于理解配置机理
客户端分为V2Ray客户端和Shadowsocks两种,使用平台又包括PC的Windows平台、MacOS平台以及移动端的Android平台和iOS平台
可以根据自己使用的平台自行选择客户端
V2Ray软件虽然不区分服务端和客户端,但是Windows平台没有GUI界面,使用不方便,推荐使用V2rayN工具,可以进行可视化管理V2Ray
首先将Windows平台下的V2Ray软件同V2rayN工具放置于同一目录,然后双击V2rayN打开应用,双击任务栏图标后出现配置界面,点击服务器按钮添加vmess服务器
在弹出窗口中填入如下信息:
Shadowsocks客户端设置
双击shadowsocks应用任务栏图标,打开编辑服务器窗口
在弹出窗口中填入如下信息:
注意到图中有个代理端口设置,这个端口便是同浏览器通信的端口,浏览器默认为1080不需要修改
最后,在浏览器中设置代理服务器,注意浏览器的代理事实上代理客户端软件
目前大多数浏览器都足够智能,可以设置其为自动检测代理
一切都就绪后,就可以用浏览器访问被屏蔽的网址了,比如Google
顺利的话就继续,不成功的话也没关系,可以访问服务页面了解如何处理问题
其它平台客户端配置也类似,主要参数也就是这些,移动端甚至都不需要设置浏览器就可以直接使用
代理架设成功后,当然希望使用效果好,速度快,不过VPS主机一般都是共享带宽,在使用高峰期质量得不到保障,不过还有些改善的办法
Google公司开发人员发明了一种算法,用于解决TCP协议传输过程中存在拥塞瓶颈,就是所谓的BBR算法
Linux系统在4.09及其以后内核都将BBR算法加入到内核中,用于提高网络传输速度,充分利用带宽
接下来当然是了解Linux系统更新内核和开启BBR算法的方法
Linux发行版众多,仅讲解VPS常用的RHEL/CentOS体系和Debian/Ubuntu体系更换内核和开启BBR方法
RHEL/CentOS 7 更换内核
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm # yum --enablerepo=elrepo-kernel install kernel-ml # cat /boot/grub2/grub.cfg | grep menu # grub2-set-default "installed elrepo kernel"
Debian 9 更换内核
修改/etc/apt/sources.list文件为如下内容: deb http://ftp.us.debian.org/debian/ stretch main non-free contrib deb http://ftp.us.debian.org/debian/ stretch-proposed-updates main non-free contrib deb-src http://ftp.us.debian.org/debian/ stretch main non-free contrib deb-src http://ftp.us.debian.org/debian/ stretch-proposed-updates main non-free contrib deb http://ftp.us.debian.org/debian/ stretch-backports main contrib non-free deb-src http://ftp.us.debian.org/debian/ stretch-backports main contrib non-free deb http://security.debian.org/ stretch/updates main deb-src http://security.debian.org/ stretch/updates main # apt-cache search linux-image # apt install -t stretch-backports linux-image-amd64
开启BBR算法
# uname -r # echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf # echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf # echo "net.ipv4.tcp_fastopen = 3" >> /etc/sysctl.conf # lsmod | grep bbr tcp_bbr 20480 8
开启BBR算法所有Linux发行版均适用,第一条命令用于确认内核更换成功,版本高于4.9
之后三条命令用于在系统配置文件中写入开启BBR算法
更换完内核、开启好BBR算法,分别重新启动一下VPS,使用最后一条命令确认BBR算法已经开启
BBR开启成功后,就可以真正享受互联网的自由了
不过好像还缺点什么
工 具 下 载Trojan 是近期由大神使用 C++ 开发的全新代理工具
其独特的设计理念,把代理数据隐藏为普通的 HTTPS 请求,最大程度的避免 GFW 的影响
估计 GFW 会根据数据包的协议特征码来拦截互联网特定流量,而普通的 HTTPS 请求由于数量过于庞大,GFW 当然不会处理
于是 Trojan 就反其它翻墙工具而行之,采用最简单的方法,让 GFW 不得不放行代理数据
Trojan 相对麻烦的就是需要使用域名证书,因为这样才能够让代理数据看起来更像普通 HTTPS 流量
那么问题来了,这个域名证书又怎么搞呢
最容易想到的办法当然是到正规域名注册商那里注册一个域名,然后使用免费签名工具生成域名证书
域名注册厂商众多,建议不使用国内注册商,因为都是强制域名备案,国外域名厂商推荐 Namecheap,因为便宜好用
域名注册成功后,就可以使用签名工具 certbot 生成域名证书
# yum install certbot # certbot certonly -v
域名证书包含供网站使用的私钥和供客户端使用建立 TLS 连接的公钥
事实上,Trojan 只需要使用这个公钥和私钥就可以正常启动服务,在购买 VPS 获得公网 IP 后可以使用 IP 地址生成域名证书
首先创建两个证书模板,一个为 CA 服务器模板,另一个为 Trojan 服务器模板
/* ca.txt */ cn = "192.168.1.1" organization = "GlobalSign DAEHUB" serial = 1 expiration_days = 3650 ca signing_key cert_signing_key crl_signing_key /* trojan.txt */ cn = "192.168.1.1" organization = "GlobalSign DAEHUB" expiration_days = 3650 signing_key encryption_key tls_www_server
有了以上两个证书模板 ca.txt 和 trojan.txt,就可以通过如下命令生成 Trojan 服务器使用的域名证书
# yum install gnutls # certtool --generate-privkey --outfile ca-key.pem # certtool --generate-self-signed --load-privkey ca-key.pem --template ca.txt --outfile ca-cert.pem # certtool --generate-privkey --outfile trojan-key.pem # certtool --generate-certificate --load-privkey trojan-key.pem --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem --template server.txt --outfile trojan-cert.pem
通过以上命令,就成功生成了 CA 服务器的公钥文件 ca-cert.pem 和 Trojan 服务器使用域名公钥文件 trojan-cert.pem 和私钥文件 trojan-key.pem
Trojan 事实上是一个可执行程序,根据配置文件来设置工作模式是服务器还是客户端
在使用 Trojan 时,习惯上服务器运行于 Linux 系统,客户端根据用户使用习惯自行选择
服务器在配置时需要使用之前生成的域名证书,客户端如果采用自签名方式则需要使用 CA 服务器公钥文件
Trojan 服务器的安装需要下载程序发行版、修改配置文件以及添加相应用户及服务等步骤,注意添加系统服务为非必须内容,只是为了使用方便
首先使用如下命令下载 Trojan 的 Linux 发行版,解压文件并将文件拷贝至正确位置
# wget https://www.rultr.com/rultr-content/trojan-1.14.0-linux-amd64.tar.xz # tar -zxvf trojan-1.14.0-linux-amd64.tar.xz # mv ./trojan /etc/ # mv /etc/trojan/trojan /usr/bin # cp trojan-cert.pem trojan-key.pem /etc/trojan
然后修改 Trojna 的配置文件 /etc/trojan/config.json,内容如下
{ "run_type": "server", "local_addr": "0.0.0.0", "local_port": 443, "remote_addr": "127.0.0.1", "remote_port": 80, "password": [ "Customize_Password_Here" ], "log_level": 1, "ssl": { "cert": "/etc/trojan/server-cert.pem", "key": "/etc/trojan/server-key.pem", "key_password": "", "cipher": "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHA CHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256", "prefer_server_cipher": true, "alpn": [ "http/1.1" ], "reuse_session": true, "session_ticket": false, "session_timeout": 600, "plain_http_response": "", "curves": "", "dhparam": "" }, "tcp": { "prefer_ipv4": false, "no_delay": true, "keep_alive": true, "fast_open": false, "fast_open_qlen": 20 }, "mysql": { "enabled": false, "server_addr": "127.0.0.1", "server_port": 3306, "database": "trojan", "username": "trojan", "password": "" } }
以上配置文件只需要将 Customize_Password_Here 修改为自定义密码即可
最后,使用方便起见,添加一个 systemd 服务
# touch /usr/lib/systemd/system/trojan.service //RHEL/CentOS OR # touch /lib/systemd/system/trojan.service //Debian/Ubuntu
文件内容如下:
[Unit] Description=trojan Documentation=man:trojan(1) https://trojan-gfw.github.io/trojan/config https://trojan-gfw.github.io/trojan/ After=network.target mysql.service mariadb.service mysqld.service [Service] Type=simple StandardError=journal AmbientCapabilities=CAP_NET_BIND_SERVICE ExecStart=/usr/bin/trojan /etc/trojan/config.json ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target
至此,Trojan 服务器就搭建完成
主要讲解 Windows 平台 Trojan 的使用
下载 Trojan 软件的 Windows 发行版,并解压至 Trojan 文件夹
需要使用的文件是主程序和配置文件
先将 Trojan 服务器生成的 CA 公钥文件 ca-cert.pem 拷贝到此目录
然后修改配置文件为如下内容:
{ "run_type": "client", "local_addr": "127.0.0.1", "local_port": 1080, "remote_addr": "IP_OF_TROJAN_SERVER", "remote_port": 443, "password": [ "TROJAN_SERVER_PASSWORD" ], "log_level": 1, "ssl": { "verify": true, "verify_hostname": true, "cert": "ca-cert.pem", "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:RSA-AES128-GCM-SHA256:RSA-AES256-GCM-SHA384:RSA-AES128-SHA:RSA-AES256-SHA:RSA-3DES-EDE-SHA", "cipher_tls13":"TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384", "sni": "", "alpn": [ "h2", "http/1.1" ], "reuse_session": true, "session_ticket": false, "curves": "" }, "tcp": { "no_delay": true, "keep_alive": true, "reuse_port": false, "fast_open": false, "fast_open_qlen": 20 } }
需要对配置文件做如下修改:
Trojan 客户端就设置完成,可以双击 trojan.exe 启动程序
常用代理客户端工具,点击平台图标下载