装SSR
SSR的端口不要和ssh的端口一样,否则SSR不会工作,一个端口只允许一个进程
- 只安装SSR,直接一键
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR.sh chmod +x shadowsocksR.sh ./shadowsocksR.sh 2>&1 | tee shadowsocksR.log
会让你输入密码和端口(0-65535之间的数),选择加密和混淆方式。卸载SSR./shadowsocksR.sh uninstall
,查看SSR状态/etc/init.d/shadowsocks status
推荐none
/auth_chain_a
/plain
组合,由于使用了auth_chain_a
,所以不需要chacha20
等加密,也不需要tls1.2_ticket_auth
。如果选择的带compatible后缀,表示兼容原版。比如我使用了chacha20
/auth_sha1_v4_compatible
/tls1.2_ticket_auth_compatible
。那么也可以在SS客户端使用你对SSR的配置。直接只填写chacha20即可,不填写ssr的其余两项。SSR客户端则填写chacha20
/auth_sha1_v4
/tls1.2_ticket_auth
- 如果想知道详情,地址如下
也可以使用teddysun的各种版本的SSR的一键脚本,详情:https://shadowsocks.be -
或者使用逗比一键脚本:wget -N --no-check-certificate https://softs.fun/Bash/ssr.sh && chmod +x ssr.sh && bash ssr.sh
rinetd加速
- 具体使用:
1.下载脚本并执行
wget --no-check-certificate https://raw.githubusercontent.com/linhua55/lkl_study/master/get-rinetd.sh
|
如果你加速唯一一个端口,直接输入bash get-rinetd.sh
,回车再输入端口数字即可完成,后面的操作不需要看了。有多个端口时就不要着急输入前面的bash get-rinetd.sh
,需要如下配置多个端口再执行bash get-rinetd.sh
。
2.编辑:
输入vi get-rinetd.sh
,按i进入编辑状态(左下角可看状态),在
echo "2. Generate /etc/rinetd-bbr.conf" cat <<EOF > /etc/rinetd-bbr.conf # bindadress bindport connectaddress connectport 0.0.0.0 443 0.0.0.0 443 0.0.0.0 80 0.0.0.0 80 EOF |
加入自己需要加速的端口,默认加速80端口(网站的http传输)和443端口(https传输),我们还需要加速我们的工具,比如我设置的8388,则加入0.0.0.0 8388 0.0.0.0 8388
echo "2. Generate /etc/rinetd-bbr.conf" cat <<EOF > /etc/rinetd-bbr.conf # bindadress bindport connectaddress connectport 0.0.0.0 443 0.0.0.0 443 0.0.0.0 80 0.0.0.0 80 0.0.0.0 8388 0.0.0.0 8388 EOF |
完成后按ESC退出编辑状态,按:wq
保存并退出
3.最后sudo bash get-rinetd.sh
返回rinetd-bbr started
即加速成功。
可能遇到的问题,及手动安装
比如Tink遇到了tool systemctl is not installed, abort
提示,是因为他的VPS内存太小,系统默认没有装systemd套件,所以这时脚本检测软件不满足,自动中止。
这里讲讲手动安装:
在/etc/rc.local
里,在exit 0上面一行添加:
/usr/bin/rinetd-bbr -f -c /etc/rinetd-bbr.conf raw ${IFACE}
即可开机启动,也可以通过这个命令运行软件
防火墙(可选
iptables在某些机器上有问题,所以推荐ufw,比较简单方便操作。这一步非必须,可不操作
- 安装:
sudo apt install ufw -y
- 设定允许哪些端口(其余端口默认不允许):
ufw allow 80
,就是允许80端口,再逐步加入你自己需要开放的端口,比如你的shadowsocksR的端口和ssh端口。 - 记住记得允许自己的ssh端口(登录主机的端口,有的主机不是22端口,比如搬瓦工一般不是22),否则下次无法登录自己的主机,被防火墙挡在外面了。
- 启用:
ufw enable
- 最后运用修改后的规则:
ufw reload
ufw status
可以查看目前的状态和启用了哪些端口。
完毕!
扩软一件脚本
Rinetd这种方式其实两三个月前就已经有了,是v2ex网友@linhua的成果,他直接将BBR内置到了Rinetd里边,比较方便的就能配置出来。也就是由于配置比较简单,我本来没想再写这个的一键配置脚本(@linhua实现了一个https://github.com/linhua55/lkl_study),但由于很多朋友使用haproxy的方式失败了,网上的脚本也只支持Ubuntu 16和CentOS 7以上的系统,我还是决定再写一个通用的rinetd-bbr一键脚本。
PS:正在写,过一段时间再发布先写一下手动搭建的方法。
手动搭建
仅支持64位系统。
1.下载文件到/ usr / bin / rinetd-bbr
1
|
wget -O /usr/bin/rinetd-bbr https://github.com/linhua55/lkl_study/releases/download/v1.2/rinetd_bbr_powered
|
2.设置权限
1
|
chmod a+x /usr/bin/rinetd-bbr
|
3.创建配置文件
1
|
vi /etc/rinetd-bbr.conf
|
输入以下内容
1
2
3
|
# bindadress bindport connectaddress connectport
0.0.0.0 443 0.0.0.0 443
|
其中的443请改为你的端口
IP地址统一写0.0.0.0
4.获取接口名称
1
2
3
4
5
6
7
8
9
10
|
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/void
inet 127.0.0.2/32 scope host venet0
inet 10.10.10.10/32 brd 10.10.10.10 scope global venet0:0
|
看具有公网IP的接口名称(比如我的公网IP是10.10.10.10),上面这种的接口是venet0:0而不是venet0
搬瓦工的OpenVZ应该都是venet0:0接口。
5.启动
1
|
/usr/bin/rinetd-bbr -f -c /etc/rinetd-bbr.conf raw venet0:0 &
|
注意:将最后的接口改为你上面获取到的接口。在命令最后面加&以使其能后台运行。
验证
正常情况下的输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
[ 0.000000] Linux version 4.10.0+ (root@gcc) (gcc version 4.9.4 (Ubuntu 4.9.4-2ubuntu1~14.04.1) ) #1 Mon Jul 31 04:50:50 UTC 2017
[ 0.000000] bootmem address range: 0x7f2acc000000 - 0x7f2acffff000
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16159
[ 0.000000] Kernel command line: virtio_mmio.device=268@0x1000000:1
[ 0.000000] PID hash table entries: 256 (order: -1, 2048 bytes)
[ 0.000000] Dentry cache hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.000000] Memory available: 64492k/0k RAM
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:4096
[ 0.000000] lkl: irqs initialized
[ 0.000000] clocksource: lkl: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
[ 0.000001] lkl: time and timers initialized (irq2)
[ 0.000003] pid_max: default: 4096 minimum: 301
[ 0.000021] Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
[ 0.000023] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes)
[ 0.009053] console [lkl_console0] enabled
[ 0.009056] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.009128] NET: Registered protocol family 16
[ 0.009265] clocksource: Switched to clocksource lkl
[ 0.009324] NET: Registered protocol family 2
[ 0.009418] TCP established hash table entries: 512 (order: 0, 4096 bytes)
[ 0.009421] TCP bind hash table entries: 512 (order: 0, 4096 bytes)
[ 0.009503] TCP: Hash tables configured (established 512 bind 512)
[ 0.009971] UDP hash table entries: 128 (order: 0, 4096 bytes)
[ 0.009976] UDP-Lite hash table entries: 128 (order: 0, 4096 bytes)
[ 0.010060] virtio-mmio: Registering device virtio-mmio.0 at 0x1000000-0x100010b, IRQ 1.
[ 0.010186] workingset: timestamp_bits=62 max_order=14 bucket_order=0
[ 0.010203] virtio-mmio virtio-mmio.0: Failed to enable 64-bit or 32-bit DMA. Trying to continue, but this might not work.
[ 0.010350] NET: Registered protocol family 10
[ 0.010849] Segment Routing with IPv6
[ 0.010859] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ 0.010993] Warning: unable to open an initial console.
[ 0.011006] This architecture does not have kernel memory protection.
[ 2.169284] random: fast init done
|
查看iptables规则:
1
2
3
4
5
6
7
8
|
# iptables -t raw -nL
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 /* LKL_RAW */
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 /* LKL_RAW */
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
|
已经有两条规则了。
文章评论
对于 NAT 的,可以使用这个加速吗?
@VirCloud 应该是可以的。只要针对一个端口加速就可以。
50VZ的Openvz服务器不知可以否?
@吴远 没问题。