前言:最近有小朋友问我,是否能在同一台VPS服务器上同时运行lnmp和v2ray服务,一方面提供web服务功能,另一方面提供FQ功能,可是无论是百度还是google,貌似都没有实用的、针对新手的、在lnmp下安装配置v2ray的教程,于是本人决定做个安装测试,最终测试成功,与各位分享,有这种需求的可以参考一下!
测试环境:CentOS7_X86_64
[root@69 ~]# uname -a
Linux 69.194.11.14.16clouds.com 4.11.8-1.el7.elrepo.x86_64 #1 SMP Thu Jun 29 10:01:10 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux

本机环境:已安装LNMP(1.6版本) lnmp的安装步骤(略)
[root@69 ~]# lnmp status
+-------------------------------------------+
| Manager for LNMP, Written by Licess |
+-------------------------------------------+
| https://lnmp.org |
+-------------------------------------------+
nginx (pid 1439 1438 1433) is running...
php-fpm is runing!
SUCCESS! MySQL running (2367)

下面我们正式开始安装配置:
1.建立一个vhost(虚拟站点),注意,这个站点是真实存在的。
[root@69 ~]# lnmp vhost add
+-------------------------------------------+
| Manager for LNMP, Written by Licess |
+-------------------------------------------+
| https://lnmp.org |
+-------------------------------------------+
Please enter domain(example: www.lnmp.org): demo.syshy.net

按申请的域名填写,并选择申请SSL。

2.安装v2ray
[root@69 ~]# bash <(curl -L -s https://install.direct/go.sh)
注意:不要装那种集成多项功能的一键安装脚本。不要装那种一键安装脚本。不要装那种一键安装脚本。
此脚本会自动安装以下文件:
/usr/bin/v2ray/v2ray:V2Ray 程序
/etc/v2ray/confian>控制V2Ray的运行。
如果使用Linux并开启了systemd,可以使用journalctl -u v2ray查看V2Ray退出时的日志。

3.修改v2ray服务端配置文件/etc/v2ray/config.json

{
"log": {
"loglevel": "warning",
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log"
},

"inbounds": [
{
"port": 38187,
"listen":"127.0.0.1",
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "改成自己的,可以用客户端随机生成",
"alterId": 95 //要和客户端对应
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/v2ray"
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
}
]
}

4.修改Nginx配置文件(安装完毕后往该域名目录内丢入一个WP),并开始配置nginx,注意,是修改对应该站点的站点配置文件。
在/usr/local/nginx/conf/vhost下找到与域名相同的文件夹,修改conf文件的配置。
[root@69 ~]# vi /usr/local/nginx/conf/vhost/demo.syshy.net.conf
有必要的话假如301跳转,强制访问http的请求至https(这个我没有做,网上教程比较多,添加两段代码就可以)
重点需要写入v2ray的配置信息:
在server段加入以下内容

location /v2ray {
proxy_redirect off;
proxy_pass http://127.0.0.1:38187;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}

注意:38187是我的v2ray监听端口,一定要和v2ray配置文件中的端口对应

5.客户端配置

传输协议、加密方式等参数按图设置。
最后启动客户端,测试是否正常。

 

总结及注意点:

1.不要装那种集成多项功能的一键安装脚本。
2.修改完nginx配置文件后需要重启服务
lnmp nginx restart
3.修改完v2ray配置文件后需要重启服务,另外也可以看看v2ray的端口有没有在正常监听。
我习惯于:service v2ray restart
4.我自己采用ws加密方式,如果有cdn需求,可以加一个CF(cloudfare),不过会影响速度。
5.我手动安装了BBR魔改版,起到一定加速作用,最好也是手动安装,不要用一键脚本,存在一定风险;搬瓦工的线路似乎越来越慢最近,youtube 4k 压力很大,但是1080p问题不大,个人感觉还是GCP最快。
6.我是在bandwagon快到期的主机上测试安装,一般情况下还是不建议在生产机上安装,一旦BQ,会影响业务运行。

之前写过一篇只适合国人的VPS,一年下来,打了脸!

最适合国人的VPS

回过头来再审视一下:

经过这么多年来的实际使用经验,linode已经被国人玩烂了,丢包严重,东京的也是,而且要FGQ也各方面不行,所以我已在半年前destory了服务器,但是linode官方一天到晚给我发邮件,为此我特地开了个tickets,告诉他们哥已经人工摧毁vps了,不要再邮件骚扰我了,最近又有邮件给我,说我的账号有欺诈嫌疑,真的很狗血,不知道是回还是不回。反正我是不会用了。

真正稳定的还是bandwagon吧,用了一年49.99刀的套餐,没出什么差错,之前因为跑ssr被ban了,后来把ssr卸载了,没想到昨天去检测,ip又恢复正常了。

个人感觉还是bandwagon比较good,下面是当前有的套餐,有需要的小朋友可以看看:

https://bandwagonhost.com/aff.php?aff=31828

先说下常用的情况:

两台机器IP分别为:A.104.238.161.75,B.43.224.34.73。

在A服务器上操作,将B服务器上/home/lk/目录下所有的文件全部复制到本地的/root目录下,命令为:scp -r root@43.224.34.73:/home/lk /root。

具体过程为:
[root@XX ~]# scp -r root@43.224.34.73:/home/lk /root
root@43.224.34.73's password:
k2.sql 100% 0 0.0KB/s 00:00
k.zip 100% 176 0.2KB/s 00:00
.bash_history 100% 32 0.0KB/s 00:00
.bash_logout 100% 18 0.0KB/s 00:00
.bashrc 100% 231 0.2KB/s 00:00
k3.sql 100% 0 0.0KB/s 00:00
.bash_profile 100% 193 0.2KB/s 00:00
[root@XX ~]# ls

在A服务器上将/root/lk目录下所有的文件传输到B的/home/lk/cpfile目录下,命令为:scp -r /root/lk root@43.224.34.73:/home/lk/cpfile。

具体过称为:
[root@XX lk]# scp -r /root/lk root@43.224.34.73:/home/lk/cpfile
root@43.224.34.73's password:
k2.sql 100% 0 0.0KB/s 00:00
k3.sql 100% 0 0.0KB/s 00:00
.bash_profile 100% 193 0.2KB/s 00:00
.bash_logout 100% 18 0.0KB/s 00:00
.bash_history 100% 32 0.0KB/s 00:00
k.zip 100% 176 0.2KB/s 00:00
.bashrc 100% 231 0.2KB/s 00:00
[root@XX lk]#

scp在夸机器复制的时候为了提高数据的安全性,使用了ssh连接和加密方式,如果机器之间配置了ssh免密码登录,那在使用scp的时候密码都不用输入。

命令详解:

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。

1.命令格式:

scp [参数] [原路径] [目标路径]

2.命令功能:

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。

3.命令参数:

-1 强制scp命令使用协议ssh1

-2 强制scp命令使用协议ssh2

-4 强制scp命令只使用IPv4寻址

-6 强制scp命令只使用IPv6寻址

-B 使用批处理模式(传输过程中不询问传输口令或短语)

-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)

-p 保留原文件的修改时间,访问时间和访问权限。

-q 不显示传输进度条。

-r 递归复制整个目录。

-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。

-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。

-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。

-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。

-l limit 限定用户所能使用的带宽,以Kbit/s为单位。

-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,

-P port 注意是大写的P, port是指定数据传输用到的端口号

-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

4.使用实例:

scp命令的实际应用概述:

从本地服务器复制到远程服务器:

(1) 复制文件:

命令格式:

scp local_file remote_username@remote_ip:remote_folder

或者

scp local_file remote_username@remote_ip:remote_file

或者

scp local_file remote_ip:remote_folder

或者

scp local_file remote_ip:remote_file

第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名

第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名

(2) 复制目录:

命令格式:

scp -r local_folder remote_username@remote_ip:remote_folder

或者

scp -r local_folder remote_ip:remote_folder

第1个指定了用户名,命令执行后需要输入用户密码;

第2个没有指定用户名,命令执行后需要输入用户名和密码;

看一下screen信息,例如

新建:screen -s xxx

查看:screen -ls
会有如下显示:
122128.test (12/04/2017 08:35:43 PM) (Attached)


删除:screen -X -S 122128 quit

C(ctrl)-c 中断正在执行任务,exit结束screen,screen如果处于
(Attached)
被其它界面占用
screen -d 退出已登入的screen,当前界面 screen -ls ,screen -r 进入对面ID号,中断 后,exit退出。

Linode东京1机房的SSR速度实在是太慢了,之前在搬瓦工那里的VPS,系统默认带Google BBR,看youtube 4k视频无压力,准备在Linode VPS上也安装,纠结到底是用BBR还是锐速,找了些资料。

锐速

参考资料:

http://bbs.kuaibo.com/thread-315336-1-1.html

http://www.tcpedge.com/features.html

锐速是一个依赖于内核的模块,其基本原理是将丢包进行评估,将预判到可能会产生丢包的数据包再发一次。所以可能会产生我们所见到的,锐速会加速VPS流量消耗。也就是我们所说的锐速多倍发包。在ACK到来之前会重发一次甚至更多。导致的结果就是重复发送。

BBR

参考资料:

https://emiria.io/post/TCP-BBR/

https://www.nanqinlang.com/controllor-bbr.html

https://www.nanqinlang.com/controllor-bbr.html

拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象。这种现象跟公路网中经常所见的交通拥挤一样,当节假日公路网中车辆大量增加时,各种走向的车流相互干扰,使每辆车到达目的地的时间都相对增加(即延迟增加),甚至有时在某段公路上车辆因堵塞而无法开动(即发生局部死锁)。
拥塞控制就是针对此问题的控制技术/解决方案,但也不能说是解决,控制技术只能起到尽量避免/缓解拥塞的作用。

TCP-BBR技术呢,用了一种溢水原理的思想,来预判丢包率,调配发包速率。
假设你有一支较细的U形管,下面还有一堆不可溶的填塞物,你从一边开始大量灌水,如果另一边出水正常,你就可以继续加大灌水量,达到最大带宽。如果另一边发现水时断时有,就证明下面出现了随机拥堵,这时,你就要减小灌水量,等待水位落下。这时如果采用传统继续灌水时,也就会造成水溢出(丢包现象的产生)。所以这是真正的按需发包。当然,这一切是建立在系统预估的情况下。

总结

锐速属于多倍发包类型的算法,而BBR是基于溢水模型的。BBR设计的更为科学,而且正在走向一个完美的拥塞算法的路上。锐速是一种损人利己的算法,虽然效果是可以,但是会加剧骨干网的负担。造成很多不必要的流量浪费。至于两者的加速效果,请各位自行测试,没有绝对地哪一种快。

电信手机每个月的流量套餐总是不够用,套餐内3部手机,2.5G流量,每个月超出30-50元,对于屌丝来说,压力不小。

免流量的原理大体:获取电信商家的定量免流量相关信息,通过模拟其数据,骗过运营商以为是走的定向流量,达到省流量或免流量的目的。

具体实践:

1.安装配置SS&SSR

2.通过抓包软件获取混淆信息。

使用著名的抓包工具snmp,获取信息后配置SSR客户端混淆信息,连接SSR,全部流量走代理模式。

3.测试是否免流。

结论:下载几首歌,几个有声小说,微信发送视频等,查询套餐流量使用情况,测试成功。

 

 

 

先放两张油管的4K视频播放截图,带参数。

百度搜索SS或者SSR,是获取不到需要的信息的,如同VPN一样,因为SS&SSR的翻墙特性,这一关键词被屏蔽。But….我们可以搜索其中文名,酸酸乳,一个好听又好记的名字,就能获取大量信息。

什么是VPN:

VPN的正确理解是虚拟专用隧道,在很多人心目中就是用来翻墙的工具,其实不是。vpn最主要的功能,并不是用来翻墙,只是它可以达到翻墙的目的。vpn–虚拟专用网络,它的功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络和高校的网络中应用很广泛。你接入vpn,其实就是接入了一个专有网络,你的网络访问都从这个出口出去,你和vpn之间的通信是否加密,取决于你连接vpn的方式或者协议。

什么是SS&SSR

SS:作者是clowwindy,大约两年前,他自己为了翻墙写了shadowsocks,简称ss或者叫影梭,后来他觉得这个东西非常好用,速度快,而且不会被封锁,他就把源码共享在了github上,然后就火了,但是后来作者被请去喝茶,删了代码,并且保证不再参与维护更新。现在这个好像是一个国外的大兄弟在维护。

SSR:在SS作者被喝茶之后,github上出现了一个叫breakwa11(破娃)的帐号,声称ss容易被防火墙检测到,所以在混淆和协议方面做了改进,更加不容易被检测到,而且兼容ss,改进后的项目叫shadowsocks-R,简称ssr,然后ss用户和ssr用户自然分成了两个派别,互相撕逼,直到前阵子,破娃被人肉出来,无奈之下删除了ssr的代码,并且解散了所有相关群组。

ss和ssr它的原理都是一样的,就是socks5代理,。socks代理只是简单的传递数据包,而不必关心是何种协议,所以socks代理比其他应用层代理要快的多。socks5代理是把你的网络数据请求通过一条连接你和代理服务器之间的通道,由服务器转发到目的地,这个过程中你是没有通过一条专用通道的,只是数据包的发出,然后被代理服务器收到,整个过程并没有额外的处理。通俗的说,现在你有一个代理服务器在香港,比如你现在想要访问google,你的电脑发出请求,流量通过socks5连接发到你在香港的服务器上,然后再由你在香港的服务器去访问google,再把访问结果传回你的电脑,这样就实现了翻墙。

我最早的socks5应用应该是15年前运用扫描到的IP用socks5代理做跳板,爆破密码,很多场合下,同一个IP不断尝试破解一个目标时,该目标会做出防御措施,封锁该源IP,在爆破场合下,必须用socks5代理不断变更源IP来进行暴力破解,当然socks5的具体应用远不止这些。
SS&SSR的安装
我用了秋水逸冰的一键安装脚本在VPS上成功部署,简单快捷,过程略。测试速度一个字:快,两个字:很快,三个字:非常快。就算不做加速处理,其速度也比收费VPN快很多倍,如果需要做加速处理,可以安装锐速补丁或者Google的BBR,我在banwagon的vps上安装了bbr,速度并没有感觉提升多少,感觉更多的是bbr优化的更多的是TCP的丢包,也可能是因为原本就很快,再快也感觉不出来,可是有一点,youtube上观看4K,我安装BBR加速的SSR(banwagon)会略卡,而linode原生SSR确一点也不卡,这也是为什么我在最适合国人的VPS上推荐linode的主要原因之一。
重点:

SS/酸酸

加密请使用 AEAD 加密,包括以下几个:

  1. aes-128-gcm
  2. aes-192-gcm
  3. aes-256-gcm
  4. chacha20-ietf-poly1305
  5. xchacha20-ietf-poly1305
  1. 对于移动设备来说,ARM v8 以后的 CPU 使用aes-gcm的效率要高于chacha20,因此更推荐使用aes-256-gcm
  2. 混淆请使用plain,即不使用混淆插件,或者使用http_simple

SSR/酸酸乳

  1. 加密请使用none
  2. 协议请使用chain_a
  3. 混淆请使用plain或者http_simple
能用plain没问题就用plain,当在plain情况下你察觉到网络有异样*,且你了解http_simple混淆参数的用途,再酌情使用http_simple

有很多萌新同学直接拿一键脚本搭建的,脚本要求设置参数的时候也许萌新们就直接一路回车默认过去或者随便选了,殊不知这可能就正是VPS被Q的原因

混淆为什么不选tls
这是有可能导致被Q的一个首要原因,因此我也放到第一位来讲,也许细心的同学们也发现了上述推荐配置中的混淆这一行都加粗了,是的,这非常重要

前段时间我与其他人讨论的时候,就发现了一个共同点,那就是被Q的人大多数都使用了tls1.2_ticket_auth混淆;而一些混淆plain的人,即使还在使用老旧甚至过时的协议,却安然无恙

很有理由猜测 GFW 已经掌握了 tls 混淆的特征

让我更确信了我的猜测的是,后来询问我被Q相关问题的人,大多数都用的是搬瓦工后台自带酸酸乳,因为我从没有用过搬瓦工,我询问了他们后才知道,搬瓦工的酸酸乳是强制tls1.2_ticket_auth混淆,嗯,真不愧是 GFW 最佳合作伙伴(而且搬瓦工自带酸酸居然没有 AEAD 加密)

后来,推特上也有人指出

“酸酸乳的tls凭据复用已经成为安全问题 不要用了”

而且,就 tls 混淆原本的用途来说,tls 混淆只是为了突破部分地区的网络环境才有的 QoS 限制,一般情况下根本不需要使用
破娃酱也在文档里说的很明白,一切因使用混淆而产生的看似是网络加速了的效果都是因为绕过了限制,混淆实际上会减慢你的网络速度

并且,如果你并不明白http(s)协议的具体细节,没有这方面的计算机网络知识,那么也不要轻易使用http_simple之类的混淆;如果没有必要,也不要使用80和443端口;这些在 GFW 眼里很可能会成为一种明显的特征,会成为“为什么我的VPS好好的就被Q了”的直接原因

加密这块到底是怎么回事
简单的来说,我们若干年前使用的非 AEAD 加密,都存在被主动探测到的风险(这一块如果感兴趣想了解,可以自行谷歌 AEAD 加密的相关科普博文)

因此,如果是酸酸,强烈推荐使用之前提到的那5种 AEAD 加密,为了防止今后(可能的)来自 GFW 的主动探测

而酸酸乳,虽然目前并没有使用到 AEAD 加密,但是破娃酱在设计协议的时候已经考虑到了主动探测问题并且针对这块进行了设计,因此目前来说还是相对安全的,前提是你使用的是chain_a或auth_aes128_md5或auth_aes128_sha1协议

对于酸酸乳,chain_a是目前最佳的协议;chain_b虽然说更难以被识别,但是仍是一个测试版协议,并且实际使用发现丢包现象莫名十分严重,并不能用;至于酸酸乳乳那些chain_c/d/e/f,可以看看这里

之前提到的推荐配置中,酸酸乳的加密为none的原因是,auth_chain系列协议已经自带了RC4加密,针对 UDP 部分也有加密及长度混淆,因此一般情况下不需要再进行额外的加密;如果你觉得RC4加密有安全隐患,再套一层其他加密也可。

总结:结合Shadowssock客户端,PC、cellphone都可以很愉快的在互联网上翱翔,多种模式,配置灵活。

多年来尝试过了太多的VPS,做个简单的总结,简洁明了,不逼逼,也不带任何推荐链接,所以也不做诸如截图之类的详细评测。

1.ramhost:openvz中最好的,没有之一,价格小贵。

2.linode:速度快,价格适中,最重要的是稳定,尤其是东京机房,那速度逆天了,比CN2,DC的都快,反正就是一个字,快。快照要收费。

3.banwagon:价格便宜,性能出众,针对中国用户优化线路,CN2,DC。略有丢包,可以优化。快照有条件免费。

4.vultr:网上都在推得主机,我很严肃的告诉你,不要入坑,毕竟国人选择这个商家都是看中其东京机房,但是基本上大部分IP都被GFW和谐,为此我摧毁了很多次来换IP,最终停止服务。

5.其他主机:没用过,不知道。

总结:国外VPS相对来说价格都比较合理,看需求选择,首选linode,如能选到linode的东京机房的话赶紧上车,其次banwagon,尤其是部分优化线路机房。

不知道在哪年海淘购入linksys ea6200官翻版本,属于第一版应该,当时该设备在整个无线路由设备中属于中高端设备,全千兆网口等,何耐这货无线发热严重,经常假死,懒得刷机,于是只能吃灰了。

近期闲来无事,把家里的斐讯K1刷了一下,以此为契机,翻出linksys,想刷个梅林玩玩。

操作步骤主要参考http://koolshare.cn/thread-49367-1-1.html,何耐在第三步刷入梅林过渡版本后死机,成砖。状态是路由器启动后能在30秒内ping通192.168.1.1,ttl返回100,接着time out.于是马云处购入usb-ttl设备,通过串口终端接入路由器CFE模式,在CFE模式下刷入原厂固件救砖。

接线办法:

打字太麻烦,直接截取改链接本人的回复了。

继续阅读