世界,你好!通过VPS看这美丽的世界

VPS有什么有趣的用途?

下一步:

1、给shadowsocks添加访问记录(如何打开Log),增加中继功能(Haproxy可以用来中继与提速,Tor用来加密)。

2、如何查询shadowsocks状态的命令:待补充

3、shadowsocks多用户下,防火墙设置:Shadowsocks限制设备连接数 和 限制端口速度 的方法

零、Shadowsocks服务器安装指导(没有废话版)

1、租用新的Vultr VPS

2、登录安装ss go版本:

wget –no-check-certificate -O shadowsocks-go.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-go.sh

chmod +x shadowsocks-go.sh

./shadowsocks-go.sh 2>&1 | tee shadowsocks-go.log

3、使用bbr优化ss:How to Deploy Google BBR on CentOS 7

一、搭建Shadowsocks(以下简称ss)服务(长篇废话版本,用于个人学习记录)

我的网络自由历程、

1、搭建goagent;

2、latent;

3、购买shadowsocks流量;

4、日本Vultr VPS,搭建Debian ss服务。

5、美国Vultr VPS ,搭建Centos python ss服务;

6、关闭日本VPS,把美国VPS改为go ss服务;

7、临时搭建Vultr日本VPS,学习Docker搭建ss服务失败;

8、关闭美国Vultr VPS(用bbr安装最后部分测速,实在是太慢了,最多50KB/s),重建日本Vultr VPS go版本 ss(测速很理想笔记本WiFi 4MB/s)

1、注册Vultr,租用日本VPS,搭建python版本SS服务

2016年圣诞节假期,我使用gmail信箱注册了Vultr日本服务器,使用的Debian Linux系统(不支持wordpress一键安装),同时注册了自己的Paypal。
插曲:写这段杂文的时候,树莓派突然无法访问了,ssh端口开着,但没有反应无法登录。上网查询,有人说是和wifi冲突。我拔了树莓派上的usb-wifi,重启一下就好了。

以下是具体步骤:

1)注册Vultr,租用日本东京VPS服务器:通过我的链接注册送十美元优惠。
2)python版本ss安装与卸载(还是Libev版本,傻傻分不清):

安装ss(参考科学上网的终极姿势,采用Shadowsocks Python版一键安装脚本中的三条命令):

wget –no-check-certificate -O shadowsocks.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh

chmod +x shadowsocks.sh

./shadowsocks.sh 2>&1 | tee shadowsocks.log
输入密码,端口号,完成后提示:

Congratulations, shadowsocks server install completed!
Your Server IP: xx.xx.xx.xx #就是租用的VPS地址,服务器端
Your Server Port: xx #刚才输入的端口号,服务器端
Your Password: xx #刚才输入的密码
Your Local IP: 127.0.0.1
Your Local Port: 1080 #客户端端口号
Your Encryption Method: aes-256-cfb
卸载ss: > ./shadowsocks.sh uninstall #输入y,提示`Shadowsocks uninstall success!` ##### 3)开启TCP fastopen(python版本支持,go版本不支持,会影响什么性能?) > vi /etc/rc.local #加入一行 echo 3 > /proc/sys/net/ipv4/tcp_fastopen > > vi /etc/sysctl.conf #加入一行 net.ipv4.tcp_fastopen = 3 > > vi /etc/shadowsocks.json #把"fast_open":false 改为 "fast_open":true ##### 4)增加用户,python版本的ss配置文件`/etc/shadowsocks.json`,原为:
{
"server":"0.0.0.0",
"server_port":xx,
"local_address":"127.0.0.1",
"local_port":1080,
"password":"xx",
"timeout":300,
"method":"aes-256-cfb",
"fast_open":true
}
把server_port那一行删除掉,password那一行改为端口、密码列表形式,注意,**右括号后必须有一个逗号**:
"port_password":{
  "xx":"xx",
  "xx1":"password1",
  "xx2":"password2"
}
5)防火墙打开新增的端口,并将ss服务重启:参考下面的go版本ss服务器内容。

2、租用Vultr美国VPS,搭建go版本ss服务器

为降低使用成本,又买了一个每月2.5美元的美国服务器,在产生了70美分费用之后,才趁2017年端午节放假安装了ss服务。

我这次用了Centos Linux(Centos支持一键安装Wordpress),用putty登录,首先修改了初始密码。
需要注意一点的是:密码更改后,vultr中显示的密码还是系统给的初始密码。如果在vultr管理页面重建vps,这个原始密码就是登录密码。
其实ss有多个版本:python、libev、go。

go版本ss安装步骤:

1)安装:

参考:Shadowsocks-go一键安装脚本shadowsocks-go的多账户配置,以后需要尝试:从shadowsocks-libev转到shadowsocks-go

wget –no-check-certificate -O shadowsocks-go.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-go.sh

chmod +x shadowsocks-go.sh

./shadowsocks-go.sh 2>&1 | tee shadowsocks-go.log
ok,ss已经可以正常使用了!

2)修改配置文件:

go版本的ss修改配置文件/etc/shadowsocks/config.json增加端口,原为(为啥没有local_address,也没有fast open?):

{
"server":"0.0.0.0",
"server_port":xx,
"local_port":1080,
"password":"xx",
"method":"aes-256-cfb",
"timeout":600
}
更改为(server和local_port行到底需不需要删除?):
{
"server":"0.0.0.0",
"local_port":1080,
"port_password":{
"xx":"xx",
"xx1":"password1",
"xx2":"password2"
},
"method":"aes-256-cfb",
"timeout":600
}
3)开启防火墙相应端口:参考:配置shadowsocks-go多用户遇到问题(已解决)

[root@vultr sysconfig]# firewall-cmd –permanent –zone=public –add-port=xx/tcp

Warning: ALREADY_ENABLED: xx:tcp #安装ss时输入的端口已经开启防火墙端口了

success

[root@vultr sysconfig]# firewall-cmd –permanent –zone=public –add-port=xx/udp

Warning: ALREADY_ENABLED:xx:udp #这是表示ss支持udp的节奏?

success

[root@vultr sysconfig]# firewall-cmd –permanent –zone=public –add-port=xx1/tcp

success

[root@vultr sysconfig]# firewall-cmd –permanent –zone=public –add-port=xx1/udp

success

[root@vultr sysconfig]# firewall-cmd –permanent –zone=public –add-port=xx2/tcp

success

[root@vultr sysconfig]# firewall-cmd –permanent –zone=public –add-port=xx2/udp

success
注意:一个端口只能对应一个口令,否则客户端无法连接服务器。

用过时的iptables命令(不推荐!改用firewall吧)为新增的9001到9005端口的ss服务开启防火墙(似乎有问题,9004没有添加上)

iptables -L | grep xx #查看确认是否已经开启了防火墙xx端口

iptables -I INPUT -p tcp –dport 9001:9005 -j ACCEPT

iptables -I INPUT -p udp –dport 9001:9005 -j ACCEPT

4)重启ss服务:

/etc/init.d/shadowsocks restart #如果更改了端口的密码,也需要将ss服务重启

5)开启BBR支持:

How to Deploy Google BBR on CentOS 7
最后的重要步骤:这样搭好的ss服务,速度还是很糟糕的,感谢Google,BBR非常好用,强烈推荐!

3、搭建日本Docker ss服务(以失败告终!以下内容混乱,不值一看)

问题:

是选用centos安装docker还是直接选用docker服务器好呢?
具体实践步骤:
1、租用东京服务器5美元centos服务器;第一次ssh登陆会提示server’s key rsa2 fingerprint,选yes登陆。先用命令“passwd”把缺省密码改掉。用“free -h”确认一下内存情况。

2、curl https://get.docker.com/ | sh #哎呀,少了“-sSL”参数,会有啥不良影响?

换一种方法,按照官方指导安装centos下的docker

2.1、yum install -y yum-utils device-mapper-persistent-data lvm2

2.2、yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo

2.3、yum-config-manager –enable docker-ce-edge

2.4、yum makecache fast

2.5、yum install docker-ce #提示Package docker-ce-17.06.0.ce-1.el7.centos.x86_64 already installed and latest version Nothing to do,很好,说明一键安装脚本即使少了两个参数也没有问题。

2.6、docker run hello-world #测试ok

3、docker version

4、systemctl start docker && systemctl enable docker

5、docker run -d –restart=always -p 11072:11072 fanach/ssserver -p 11072 -k zhangqihui #失败!fannach应该替换成zyfdedh 详见官方网址

6、docker pull oddrationale/docker-shadowsocks #换oddrationable试试

7、docker run -d -p 11072:11072 oddrationale/docker-shadowsocks -s 0.0.0.0 -p 11072 -k zhangqihui -m aes-256-cfb #-k前缺少空格,导致失败过,太粗心了!

8、docker ps #docker ps -a 会显示更多信息,有啥差别吗?

9、在手机客户端测试ss服务,没有数据流,失败了,防火墙的原因?

10、配置“zhangqihui.tk”指向这个日本服务器

2提示:
warning: /var/cache/yum/x86_64/7/docker-ce-edge/packages/docker-ce-17.06.0.ce-1. el7.centos.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
Public key for docker-ce-17.06.0.ce-1.el7.centos.x86_64.rpm is not installed
Importing GPG key 0x621E9F35:
Userid : “Docker Release (CE rpm) <docker@docker.com>”
Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
From : https://download.docker.com/linux/centos/gpg
If you would like to use Docker as a non-root user, you should now consider
adding your user to the “docker” group with something like:
sudo usermod -aG docker your-user
Remember that you will have to log out and back in for this to take effect!
WARNING: Adding a user to the “docker” group will grant the ability to run
containers which can be used to obtain root privileges on the
docker host.
Refer to https://docs.docker.com/engine/security/security/#docker-daemo n-attack-surface
for more information.
3提示:
Client:
Version: 17.06.0-ce
API version: 1.30
Go version: go1.8.3
Git commit: 02c1d87
Built: Fri Jun 23 21:20:36 2017
OS/Arch: linux/amd64
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docke r daemon running?
4提示:
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
5提示:
docker: Error response from daemon: invalid restart policy ‘always -p 11072’.
See ‘docker run –help’.
6提示:Digest: sha256:8bece84b1bdb0c5a450944afebbd7cb4b1ba7c63aac70e2447953a35c884a1e9
Status: Downloaded newer image for oddrationale/docker-shadowsocks:latest
7提示:be74f4b60ab97138b77614864fd6f103c3780de1aec7784113171f5e6069101b
8提示:CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
be74f4b60ab9 oddrationale/docker-shadowsocks “/usr/local/bin/ss…” 18 seconds ago Up 16 seconds 0.0.0.0:11072->11072/tcp cranky_clarke

iptables -L DOCKER #检查docker中是否开启了相应的防火墙端口
提示如下,没有看出问题,为啥手机客户端连不上呢?

Chain DOCKER (1 references)
target prot opt source destination
ACCEPT tcp – anywhere 172.17.0.2 tcp dpt:11072

可能是那个ss包有问题吧,下周学习自己打包ss,为省钱,先暂时把东京服务器删了。

二、ss测试、优化与故障处理

1、VPS速度测试(使用Speedtest-cli测试VPS的ss性能)

speedtest测速原理:speedtest带宽测试原理探究 | speedtest的原理
1)、在Android手机Termux中安装、使用:

pip install speedtest-cli #用python包管理工具安装speedtest

which speedtest-cli #查看安装路径

speedtest-cli #使用手机移动数据上网,测试本机上传、下载速度,能看到手机的公网ip,ping最快的服务器竟然在南京,下载速度63.95Mbit/s,上传速度37.14Mbit/s,

speedtest-cli –share #用生成结果图像的方法再测试一次,最快服务器变济南了,下载速度0Mbit/s,上传速度1.41Mbit/s,提示生成的结果在地址“http://www.speedtest.net/result/0.png”。这零速度是啥意思!?
如果在家里局域网测试,似乎测试的是VPS与它附近服务器的速度(和我家的宽带有啥关系?):
Testing from Choopa(ip地址)… #ip地址竟然是我租用的美国VPS地址

Hosted by Speedtest.net(New York City,NY)[33.43km]… #测试纽约的speedtest服务器
speedtest-cli命令 | pip介绍与使用

2)、在Centos 7 中安装、使用:

How to install Speedtest-cli on CentOS7 or RHEL 7

3)、路由查询工具Best Trace

我从Google Play上下载安装了Best Trace,发现我的日本、美国VPS路由倒没有出现绕地球跑大圈的问题,但在国内的路由都经过了北京,首都的压力太大了,还是地方直接外连多好!
电信家用普通线路到 vultr 日本东京绕道美国了?
Best Trace可视化路由追踪线路工具辅助选择VPS主机

2、端口限速

有时间实际操作一下!
使用iptables设定特定端口连接数(万能方法)

3、端口不通故障

偶然发现一个问题,新建的纽约服务器,同样的密码,端口9001在手机上、公司台式机上无法使用,改用11072端口就好了,为啥日本服务器没有这毛病!一脸黑线!可能与11072开启了防火墙端口,而9001与9002是后添加的,python版本的shadowsocks没有添加有关吧?希望go版本的shadowsocks没有这个问题。
当然还有好消息,原来我在公司内网开启ss服务连接东京服务器后,chrome可以更新至最新版本,也可以上youtube和facebook,但是很多没有上白名单的网站还是无法访问,我换美国服务器后,随手把系统代理模式从全局改为PAC模式,PAC还是使用本地PAC,竟然可以访问任何网站了,比如yahoo.com,比如taobao.com。还有一个小问题:从GFWList更新本地PAC是失败的,为啥?高兴了一天而已,第二天,taobao.com就上不去了,难道上的网站是非加密的,被检测到了?百撕不得骑姐啊。

4、设置负载均衡

在刷了华硕改版固件的R7000路由器中,shadowsocks设置,负载均衡设置里,把自己的日本、美国服务器都加上,注意,端口、密码要一致。然后在shadowsocks设置的节点选择中,选负载均衡,应用即可。问题:路由器中,服务器端口是1081,而服务器配置文件中的local_port是1080,不矛盾吗?

5、VPS优化:速度不满意,用BBR优化SS,不推荐速锐

 

三、搭建hexo博客

参考 Install Hexo on CentOS 7

ssh root@www.zhangqihui.tk #通过手机的Termux远程访问我的VPS

yum install -y gcc gcc-c++ make git openssl

yum install -y nginx
部署Hexo到VPS
CentOS下搭建Hexo + github 博客
在VPS上部署Hexo静态博客,使用Lets Encrypt做https
从 0 开始搭建 hexo 博客

四、通过docker搭建网盘

注意:vultr安装docker需要至少1G内存:Installing Docker on CentOS 7

五、How to:

1、为啥我买的ss没有问题,而自己部署的ss在路由器上会显示错误呢?

现状:

路由器R7000,6.6.1版本梅林。买的ss,显示国外连接working;看youtube视频,1080p格式的每隔几分钟会缓冲,估计720p的没有问题。

自己部署的ss,把python版本的shadowsocks改为go版本的,显示国外连接Problem detected!关键是这个ss在手机上,用手机流量是好用的!
思路:
我到底是应该找ss配置的原因,还是干脆把梅林升级为7.5版本碰碰运气?

从官网下载了shadowsocks windows 4.0.4版本测试,自搭的ss没有问题,看youtube 720p视频很流畅。

putty登录VPS,查询status没有问题,还没有查询bbr状态。

看来自搭的ss问题不大,但没有购买的ss配置的好。差异在哪里呢?
问题解决:
还是通过将小宝梅林固件升级为7.4版本解决了。

2、为啥台湾苹果日报无法访问?

http://www.appledaily.com.tw/

访问错误提示:

>无法访问此网站

www.appledaily.com.tw 拒绝了我们的连接请求。




请试试以下办法:


检查网络连接


检查代理服务器和防火墙

ERR_CONNECTION_REFUSED