2017科学上网

写这篇是由于最近开发时偶尔翻墙问题,这次记录一下过程。

去年懒得折腾,使用的翻墙工具轻云是傻瓜版,无需客户端一个pac足够,自己的vps搭的ss服务器用的反而不多。找出其中http代理用于开发等。可是轻云刚刚已经阵亡了。

周围的同学使用各种翻墙工具的都有,但也许会遇到一些问题,希望探索出更好用的方式并记录一下,能帮到其他人当然更好。

缘起

翻墙不完美的现象比较常见,虽然有时认为轻微影响效率,集腋成裘,作为懂技术的应该处理得更好一点,给自己和身边的人一个好的工具

  • 代理偶尔不能访问
  • 一种代理总会有失败的时候,需要多备用几种
  • 代理提供方可能也被监控
  • 不够自由,pac的变动不太方便
  • 一些代理配置较麻烦、会有兼容和使用上的小的问题,推荐给朋友不方便
  • 代理没有自动切换机制,国外快了国内的反而慢
  • 软件冲突,比如将端口写定无法变动,比如与tunnelblink 冲突
  • 代理偶尔需要输入google验证码
  • 不方便爬虫和命令行程序使用代理
  • 有些代理提供商没有专业精神
  • 有时候会调转到google.jp等,略有不方便的地方

现有方案

理想的翻墙方式是推倒墙或者肉身翻墙,先不谈

  • 类似曲径、轻云的pac提供商。前者已挂,后者也刚刚挂了。也提供手机自动配置,是最简易的一种
  • 类似greenvpn 提供客户端。能用,但是有时不够稳定和自由
  • 提供ss代理的服务商 ss作者被喝茶了,ss未来不太清楚
  • 自己买国外vps,搭建ss服务器,本地也可以将socks5转为http代理 使用polipo 或者privoxy
  • cow 、goagentX 、 Lantern ...
  • 国外VPS wget 500Mb/s 然后rscp到本地 10Mb/s(not MB), 适合下载大文件
  • 以前博客教人翻墙的文章浏览量很高,互相帮助 ...
  • 阵亡名单 GoAgent ...
  • 刚换电脑,很久没有折腾这个,更好的方案需要大家和墙的共同参与

简明翻墙姿势

shadowsocks(简称ss)搭建教程精简版

第一步 配置服务器,或者联系我,也有很多服务提供商

购买 digitalocean 旧金山服务器 最低配足够 $5

pip install shadowsocks
vim /root/ssconfig.json
{
    "server":"yourip",
    "server_port":2334,
    "local_port":1081,
    "password":"yourpwd",
    "timeout":600,
    "method":"aes-256-cfb"
}
ssserver -c /root/ssconfig.json -d start
# ssserver -d stop # 停止服务

第二步 安装shadowsocks客户端 - Mac shadowsocks-ng 自带gfwlist-pac来区分国内网站 - iPhone https://www.wingy.site/appstore.html - 安卓和pc自行搜索shadowsocks

测试youtube播放流畅,完成~~~

如果是愿意折腾的开发者

pip install shadowsocks # 客户端 在本地运行
vim /usr/local/etc/ssconfig.json
{
  "method" : "aes-256-cfb",
  "server" : "yourip",
  "password" : "yourpwd",
  "local_address" : "127.0.0.1",
  "server_port" : 2334,
  "auth" : false,
  "timeout" : 60,
  "local_port" : 1081
}
sudo sslocal -c /usr/local/etc/ssconfig.json -d start
  • sslocal 的自动启动,可以自行配置,参考privoxy自动启动即可
  • 配置 chrome扩展「Proxy SwitchyOmega」 新建代理 socks5 localhost 1081 即可
  • 鸡蛋问题,chrome扩展商店被墙了,可以在系统里配置一下socks5代理先
  • 自己配置一个自动更新的好用的pac
# 转为http代理
brew install privoxy
# 配置如下
vim /usr/local/etc/privoxy/config_1
listen-address 0.0.0.0:8118
toggle  1
enable-remote-toggle 1
enable-remote-http-toggle 1
enable-edit-actions 0
enforce-blocks 0
buffer-limit 4096
forwarded-connect-retries  0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 5
socket-timeout 60

# mode_whitelist  # you can add pac
forward-socks5 / 127.0.0.1:1081 .
forward    192.168.*.*/   .
forward    10.*.*.*/      .
forward    127.*.*.*/     .
forward    0.0.0.0/       .

# mode_blacklist
# forward / .
# forward .youtube.com 127.0.0.1:8123 .  # chain another http-proxy
# forward-socks5 .google.com 127.0.0.1:1081 .

/usr/local/sbin/privoxy --no-daemon /usr/local/etc/privoxy/config_1
http_proxy=http://localhost:8118 curl ip.gs
# ➜ 当前 IP: xxx 来自:美国加利福尼亚州旧金山 digitalocean.com

于是 http_proxy=http://127.0.0.1:8118 各种测试顺利,完成~~~

privoxy 自动启动

cd ~
touch org.privoxy.plist ; echo '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>Label</key><string>org.privoxy</string><key>ProgramArguments</key><array><string>/usr/local/sbin/privoxy</string><string>/usr/local/etc/privoxy/config_1</string></array><key>RunAtLoad</key><true/></dict></plist>' > org.privoxy.plist
sudo chown root:wheel org.privoxy.plist
sudo mv org.privoxy.plist /Library/LaunchDaemons/
launchctl load /Library/LaunchDaemons/org.privoxy.plist

其他

  • 一次性将这个问题解决好,接下来半年应该可以顺利度过
  • proxychains-ng
  • ZeroNet
  • BitTorrent Sync
  • 某同学写给ss的文章,不算愤青但用情很深 https://www.starduster.me/2015/08/21/say-goodbye-to-ss/ 不做评价
  • todo

参考链接

  • https://www.loyalsoldier.me/fuck-the-gfw-with-my-own-shadowsocks-server/
  • https://www.logcg.com/archives/1296.html 以前用这个,只是用不了那么多切换
  • http://shadowsocks.blogspot.jp/
  • 就一一不列举了,感兴趣自己搜

Comments !

blogroll

social