Hexo Blog

fsh的博客


  • 首页

  • 归档

魔法上网

发表于 2018-09-14 更新于 2019-08-06

介绍

shadowsocks是一款自定义协议的代理软件,由于其流量特征不明显,不太容易用技术手段拦截。虽然作者@clowwindy两年前就被有司请喝茶了,shadowsocks却一直运转良好没有被彻底封杀过。

原理

shadowsocks客户端启动后会在本地开启一个代理,可以理解为一个数据的出入口。用户想通过shadowsocks访问墙外网站的请求都要经过这个本地代理。

通过shadowsocks翻墙上网的过程是这样的:

  1. 用户发起一个网络访问请求,比如用浏览器访问google.com,请求被发送到本地代理。

  2. 客户端从本地代理拿到请求数据,然后发送至墙外的shadowsocks服务端。

  3. 服务端向google.com发起请求,然后收到google的响应数据,也就是google首页的数据。

  4. shadowsocks服务端把响应数据发回客户端。

  5. 客户端再通过本地代理把响应数据交给浏览器,google首页就显示出来了。

整个过程中的第2步和第4步都是通过shadowsocks自定义的协议隐蔽地进行,很难被过滤,所以我们才能一直用它顺畅地翻墙。

配置

下载客户端,购买服务端。如果你愿意折腾,可以自己租一个VPS(虚拟主机)搭建shadowsocks服务,成本更低,而且流量上限取决于你购买的VPS套餐,一般来说都很充裕。

客户端和服务端都有了,只要配置一下客户端就可以愉快地翻墙了。

客户端需要按照服务器的配置填写服务器IP地址、服务器端口、本地端口(如果没有本地端口选项,就是默认的1080)、密码、加密方式等参数,可以参看上面的“编写配置文件”小节。

Windows和macOS客户端支持全局代理和PAC代理两种方式,后者会使用一个脚本来自动检查一个网站是否在需要代理的网站列表中,自动选择直接连接或代理连接。

PAC列表可以在线更新,但是难免有收录不全的情况。如果你用Chrome,可以使用支持自定义规则的代理管理插件来实现自动切换代理,比如switchyOmega。

switchyOmega自动切换代理

switchyOmega是Chrome浏览器上一个很好用的代理管理插件。

chrome应用商店本身需要翻墙才能访问,因此需要先在shadowsocks启动代理模式下下载安装,再关闭shadowsocks代理。

安装完毕后,右击switchyOmega图标,选择选项,进入switchOmega配置界面。

创建shadowsocks情景模式

新建一个情景模式,比如叫SS,代理协议选择socks5,代理地址为127.0.0.1,端口1080。

现在切换到SS情景模式就可以通过shadowsocks科学上网了。后面获取自动切换规则列表

设置自动切换模式

在设置界面选择自动切换模式,在“切换规则”中勾选“规则列表规则”,对应的情景模式选择刚刚新建的SS。

然后在下面的规则列表地址中填写

1
https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt

规则列表格式选择AutoProxy。这是一个一直在维护的被墙网站列表。

然后点击立即更新情景模式, 更新完成后会有提示。

点击左侧的“应用选项”。然后单击switchyOmega图标,选择自动切换,就可以在访问“不存在的网站”时自动切换到shadowsocks代理了。

添加自定义规则

如果遇到某个国外网站无法直接连接或速度太慢时,可以单击switchyOmega图标,选择“添加条件”,情景模式选择SS,就可以了。

这时打开switchyOmega选项,在自动切换模式的切换规则中就可以看到刚刚添加的规则。可以在这里管理自定义的规则。

导入和导出switchyOmega设置

如果换了一台电脑,重新设置一遍switchyOmega就太麻烦了。可以在设置好的switchyOmega中导出设置文件,在另一个chrome浏览器中导入,就可以直接复制原来的设置了。

在switchyOmega选项的左侧点击“导入/导出”,点击“生成备份文件”即可生成switchyOmega设置备份。点击“从备份文件恢复”可以导入备份文件。

shadowsocks服务搭建

购买VPS服务器

主流的VPS(虚拟主机)服务器提供商有三家

  • linode
  • digital ocean
  • bandwagon

下面的比上面的便宜。如果只是自用,bandwagon足够。

一般使用paypal绑定一个visa或mastercard信用卡来付款。注意要用国际paypal帐号,国内的是不能用外币付款的。

在bandwagon购买VPS以后会获得一个主机地址和用于ssh登录的root密码。

远程登陆VPS

Mac OS X 或Linux下直接在终端中

ssh root@your_vps_ip -p your_ssh_port
即可。

在windows系统下需要专门的客户端来SSH登录VPS。在xShell官网 下载xShell。

家庭和学校用户可以免费试用,下载时选择home and school use即可。需要用邮箱注册一下,下载链接会发送到邮箱中。

xShell中新建一个连接,会要求输入目标IP地址和端口,以及root密码,按提示操作即可。

安装shadowsocks

打开shell,使用VPS服务商提供的root用户和密码SSH登录VPS。然后执行如下命令

1
2
3
4
5
6
Debian/Ubuntu:
apt-get install python-pip
pip install shadowsocks
CentOS:
yum install python-setuptools && easy_install pip
pip install shadowsocks

shadowsocks就安装好了。

有时Ubuntu会遇到第一个命令安装python-pip时找不到包的情况。pip官方给出了一个安装脚本,可以自动安装pip。先下载脚本,然后执行即可

1
2
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

或者使用easy_install安装

1
sudo easy_install shadowsocks

编写配置文件
shadowsocks启动时的参数,如服务器端口,代理端口,登录密码等,可以通过启动时的命令行参数来设定,也可以通过json格式的配置文件设定。推荐使用配置文件,方便查看和修改。

用vi新建一个配置文件

1
vi /etc/shadowsocks.json

然后输入如下内容

1
2
3
4
5
6
7
8
9
10
{
"server":"my_server_ip",
"server_port":25,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"mypassword",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}

简单说明一下各个配置项

server
你的VPS服务器的IP地址

server_port
你的shadowsocks服务端口。一般可以填一个1025到49151之间的数字。不过如果使用一个知名端口,比如25(电子邮件)、21(FTP),“可能”会更安全,因为GFW对这些基础互联网服务下手的可能性似乎会小一些。注意不要和你的VPS上已经有的服务冲突。

local_address
本地IP地址,作为服务器使用的时候可以不用关注,填127.0.0.1即可。

local_port
本地端口,也不用关注。

password
你的shadowsocks服务密码,客户端连接时需要填写的。

timeout
超时时间,如果当心网络不好可以设置大一点。

method
加密方式,建议填写aes-256-cfb,安全性比较高。

fast_open
在Ubuntu上建议填True。

填好以后保存退出。

安装shadowsocks-docker

1
2
docker pull shadowsocks/shadowsocks-libev
docker run -e PASSWORD=<password> -p<server-port>:8388 -p<server-port>:8388/udp -d shadowsocks/shadowsocks-libev

启动shadowsocks

如果已经写好了配置文件,启动shadowsocks服务器的命令如下

ssserver -c /etc/shadowsocks.json

后台启动和停止shadowsocks服务器

ssserver -c /etc/shadowsocks.json -d start
ssserver -c /etc/shadowsocks.json -d stop
shadowsocks的日志保存在

/var/log/shadowsocks.log

转载地址

Hello World

发表于 2018-09-13 更新于 2019-08-01

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

Bash bash
CSS css
Java java
JavaScript javascript
Makefile makefile
Shell shell

Git工具

发表于 2018-09-13 更新于 2019-03-12

Gitee (中文名:码云 ,原名 Git@OSC )是开源中国推出的基于 Git 的代码托管服务。
GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。

#创建Github仓库
用New repository选项创建远程仓库
用Git GUI Here 中的Create New Repository选项创建本地仓库

#配置SSH Key
用Gui的help选项,选择Show SSH key,点击Generate Key来生成key
把生成的key填写到Github中,在Settings的SSH and GPG keys那里填

#用户配置
git config –global user.name “你的Github用户名”
git config –global user.email “你的Github邮箱地址”

提交代码到Github仓库

1
2
git add . (有空格)
git commit -m “This is the message describing the commit” (添加commit信息)

bolg 需要生成静态文件 再上传

把项目提交到Github上

1
2
3
4
5
6
创建主干
git remote add origin 你的远程仓库地址(git@github.com:MarcusKun/io.git)
git remote add origin git@github.com:fsh1234/fsh.github.io.git
注:在创建好Github仓库后有两个地址,一个是https的地址,另一个是SSH地址,也就是上面这个地址.

git push -u origin master(执行这个之前必须先在本地做一次提交操作) 提交代码

更多信息

Pro Git

推荐网站

发表于 2018-09-11 更新于 2019-08-01
广告拦截器 AdGuard
标记语言 Markdown
Git学习 Pro Git
Maven仓库 Maven
Next Next
Hexo Hexo
w3cschool w3cschool
way to explore way to explore
Spring-Boot文档 Spring-Boot文档
表情包 😂
JWT在线测试 JWT在线测试
谷歌邮箱 fushenghao1234@gmail.com
1…56

fsh

54 日志
4 分类
20 标签
© 2019 fsh
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Pisces v7.3.0