Coder Social home page Coder Social logo

knowledge-collection's People

Contributors

cji03 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

knowledge-collection's Issues

转载/收藏:科学上网

  • 目录
  • VPS服务商的选择
  • 科学上网服务端搭建
  • 客户端的选择
  • 写在最后

随着我国相关法律条款的日益完善,本自乱象丛生的VPN市场如今已渐渐被控制,使用传统协议(IKE,IPSec,PPTP…)的科学上网方式也变得更加困难;加上第三方服务商的不透明性,不稳定性,使得第三方科学上网的安全性(MITM…),速度体验让人堪忧…
(仅供参考,请在法律范围内使用该教程,如有违反法律规定,作者概不负责)

  • VPS服务商的选择

VPS服务商的选择将直接影响你的科学上网体验,下面提供一些参考建议,提供商均安全可靠且有一定知名度;在获得一个VPS实例之前,你可能需要先注册好相关账号并准备一张具有国际支付功能的信用卡(Visa,MasterCard…)

Google Cloud Computing Engine(推荐)
需要一个Google账号,初次注册可以获得300$有效期为一年的使用卷,最低配置使用一年几乎免费;建议选择Asia机房(IP Location:Mountain View),速度和稳定性极佳,但不支持IPv6(不使用负载均衡的情况下)

AWS EC2(推荐)
需要一个Amazon账号,初次注册可以获得一年的Free Trial权限,出入站流量各15GB/月;建议选择Tokyo机房(IP Location:Tokyo),稳定性极佳,速度尚可,支持IPv6(需设置VPC)

Vultr(推荐)
账号注册简易(可以使用PayPal,无需信用卡),初次注册仅送50GB Block Storage,但费用廉价;建议选择5$套餐,包括1TB Bandwidth每月,建议选择Tokyo机房(IP Location:Tokyo),速度一般,稳定性尚可,支持IPv6

Linode
账号注册简易,初次注册无优惠,费用廉价,建议选择5$套餐,包括1TB Bandwidth每月,建议选择Tokyo机房(IP Location:Tokyo),速度极佳,稳定性较差(由于IP极易被Ban),支持IPv6

Lightsail
需要一个Amazon账号,由AWS推出,初次注册无优惠,费用廉价配置一般,建议选择5$套餐,包括500GB Bandwidth每月,建议选择Tokyo机房(IP Location:Tokyo),速度一般,稳定性极佳,不支持IPv6

Digital Ocean
账号注册简易,初次注册无优惠,费用廉价,建议选择5$套餐,包括1TB Bandwidth每月,建议选择Singapore机房(IP Location:Singapore),速度一般,稳定性极佳,支持IPv6

Azure
需要一个Microsoft帐户,初次注册可获得300$有效期为三个月的试用卷;长期使用价格昂贵,建议选择Japan East/West机房(IP Location:Japan),速度和稳定性极佳,支持IPv6

  • 科学上网服务端搭建

## ❶建立实例
在确定好你所选择的服务商后,你需要建立一个用于提供科学上网服务的实例。建立实例时尽量按照自己的需求来选择实例配置,一般情况下共享的1vCPU和1GB内存就足够了;另外需要注意一下几点,以确保你能够正常连接并使用你的实例

①实例的出入站规则(Firewall)

入站规则:

TCP 22 Your IP
#默认的SSH端口,用于连接到你的实例,应允许你的IP可以访问
TCP [443] Anywhere* or Your IP
#这里是Shadowsocks使用的端口,推荐使用443(HTTPS),应确保任意IP或你自己的IP有访问权限
UDP [443] Anywhere* or Your IP
#若开启Shadowsocks的UDP转发,请开启此端口,此端口配置应与其TCP的端口号和访问权限相同

出站规则:

All Traffic Anywhere*
#允许你的实例向任何IP发送流量,保证可以正常访问网络

*此处的Anywhere通常会显示为0.0.0.0/0;::/0

②实例的系统类型

使用Linux;如Ubuntu,Debian…建议使用Ubuntu 15.x-17.x,较新的发行版系统可以获得更多的特性支持及更好的安全性

③实例的网络设置,IP及连接方式

为了实例的安全性,建议开启实例的Private Network(如果有);确定实例至少拥有一个Public IPv4地址,并开启IPv6支持(若有需要);连接到实例需要使用SSH,应查看实例的IP和用户名,密码或密钥(需要下载),并将其妥善保管

## ❷连接到实例

①MacOS&Linux

使用自带的Terminal进行连接

ssh -i [YourCert.pem] [Username]@[ServerIP]
#通过密钥+用户名+IP进行连接,YoutCert.pem若不在执行目录下需要标明路径
ssh [ServerIP]
#通过密码+用户名+IP进行连接,按照提示输入用户名的密码

②Windows

使用PuTTY进行连接,若是.pem为后缀的密钥验证,需用PuTTYgen转换为.ppk为后缀的密钥才可以连接,详见AWS提供的文档

③iOS&Android

使用SSH第三方客户端进行登录,如Prompt2Termius(支持多平台且免费)等
Prompt 2 iPhone 下载
Termius - SSH Shell / Console 下载

## ❸搭建Shadowsocks-libev服务器

Q1.为什么使用Shadowsocks协议?

相比传统的VPN(IKE,IPSec,PPTP…),Shadowsocks协议具有更好的灵活性和隐蔽性,且搭建相对简单,因此可以拥有相对传统VPN更快的速度和更高的稳定性;关于其特点,原理及弱点的更多讨论,可以在这里稍做了解,本文不对此长篇大论

Q2.为什么使用Shadowsock-libev服务端?

相比原版Shadowsocks,libev(c#)版本提供了更多的特性支持;而关于ShadowsocksR(Python),Shadowsocks-libev率先支持**AEAD加密,并向ShadowsocksR学习引进了Obfs**(Simple-Obfs,但与前者原理有所不同),且提供稳定的周期性更新;关于未来,ShadowsocksR更倾向于none加密策略,而Shadowsocks-libev则倾向于传统的加密策略,两者有不同的侧重点(ShadowsocksR更侧重消除特征以更好穿过GFW,而Shadowsocks-libev则追求更高的安全性),综合起来并无优劣之分

①以root权限运行命令

初次连接到实例,一般需要获取root权限(非root用户的情况下),获取方法如下
sudo passwd root
#运行以上命令,重设root用户密码
su
#运行以上命令,使用重设后的root密码登录

②开始搭建Shadowsocks-libev服务端

可以选择使用笔者的自动脚本(Twist)进行搭建或自行搭建(可参考❻疑难解答的Q8回答*),这里主要介绍如何使用前者科学上网


sudo wget https://raw.githubusercontent.com/Unbinilium/Twist/master/twist -O twist.sh && chmod -x twist.sh
#运行以上命令,下载自动脚本(shell)并赋予权限
bash twist.sh
#运行以上命令,开始搭建服务端;若需自定义*,在运行这条命令之前请先参照下方说明③

③自定义Shadowsocks-libev服务端*

若在安装之前,可以先直接编辑下载后的twist.sh后再安装,编辑命令如下

nano twist.sh
#运行以上命令进行编辑

在编辑界面定位到function shadowsocksconfig(){以下至}前的内容,编辑""内的参数,下面是关于参数的简单介绍(说明中未标出及说明后面带有"!"号的是不建议修改的参数)

SSLOCAL="[\"[::0]\",\"0.0.0.0\"]"
#Shadowsocks的默认监听地址,默认为任何IPv6或IPv4地址
PORT="443"
#Shadowsocks使用的端口,建议使用443(HTTPS)
LOACL="127.0.0.1"
#本地监听地址!
LOCALPORT="1080"
#本地监听端口!
PASSWORD=""
#加密使用的密码,留空将会自动生成,切忌简单密码
TIMEOUT="600"
#未使用的连接超时自动断开,单位(s)
METHOD="chacha20-ietf-poly1305"
#加密方式,详见加密*
OBFS="tls"
#混淆方式,详见混淆*
OBFSHOST="github.com"
#混淆域名,详见混淆*
WORKERS="1024"
#服务使用的线程数,更高的线程数可以提高加解密速度
FWS="enable"
#伪装成网站服务器,避免被检测
ABB="enable"
#利用fail2ban自动Ban掉向服务器发送恶意数据的IP
BBR="enable"
#是否安装Google-BBR加速,详见优化❹-②*

若是在使用默认的配置安装完毕后,则可以对安装后的配置文件进行编辑,编辑命令如下

nano /etc/shadowsocks-libev/config.json
#运行以上命令,对""内的参数进行编辑

其中大部分参数与twish.sh中的自定义参数含义相同,详见Shadowsocks-libev Wiki,完成编辑后需重启Shadowsocks-libev应用配置,命令如下

/etc/init.d/shadowsocks restart
#运行以上命令重启通过Twist搭建的Shadowsocks-libev服务端

*加密,推荐使用AEAD加密,以下是四种AEAD加密方式

aes-128-gcm
aes-192-gcm
aes-256-gcm
chacha20-ietf-poly1305

以及几种常用的OTA加密方式(OTA加密一定程度上可以加快加密速度并降低CPU使用率,但较前者安全性更低且有明显缺陷)

rc4-md5
aes-128-cfb
aes-128-ctr

*混淆方式,主要分为tls,http两种,相比http,tls更具优势,但支持Shadowsocks-libev的tls混淆客户端较少(比如Surge用户只能使用http混淆)
*混淆域名,使用混淆时伪装的域名,一般选择大型企业,流量出入较大、CDN等未被墙的域名作为混淆域名(如伪装的特定端口下的IP或域名来免流),常用的混淆域名有这些

cloudfront.com
cloudflare.com
itunes.apple.com
www.icloud.com
ajax.microsoft.com
apps.bdimg.com

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.