VPS使用Nginx开启中转节点 ss/ssr/v2ray流量转发负载均衡
好久没有写帖子了,今天抽点时间更新一下吧。主题是用中转鸡的nginx转发我们不能起飞的vemss、ss、Trojan等协议的节点,低功耗、绿色、环保!
也许很多小伙伴并不知道怎么去转发流量及时给你一台VDS或NAT中转小鸡也会望而却步,无从下手。也许、机智的小伙伴会用极光或咸蛋面板进行傻瓜式流量转发,这确实是一个不错的选择,也可以快速转发不同种协议的流量。但是,在我实际使用中,无论是极光的所有转发协议或者咸蛋那免费的ipt协议我都用过,裸转tls的协议问题倒是不大,但是转SS那就是自寻死路了。但又会有那么些人就是怀旧就是喜欢SS,比如我就是其中一员,喜欢SS的轻快。所以无论是上面的ipt也好brook也罢,更或者gost+ws(s)以及tls都尝试过,最有效的其实还是gost或ehco的加密隧道模式,有效防止被墙几率。麻烦的是这两种协议配置起来比较绕,小白很容易被绕晕,绕晕后自然就放弃了。
虽然gost隧道好用,但是架不住吃内存和cpu啊,个人还好点,如果是单节点万人骑那就game over了,所以nginx转发就成了一个最好的选择,不仅可以有效防止被墙几率,还能不费时间不费脑子的快速多节点同时转发,最重要的还可以做负载均衡配置,真正做到0宕机,效率极高,逻辑简单。只需要用到nginx中的一个steam模块即可完成我们所需要的工作。好了啰嗦了一大堆,下面进入正题!
准备工作
- 一台中转机 NAT或者VDS (国内或香港机)
- 一台落地机(就是我们的国外垃圾服务器)
教程开始
首先我推荐大家用Debian10以上的系统,轻快便捷。一下操作也都是基于Debian10系统,centos会写在最下方
1.安装nginx
1 |
apt-get install nginx -y |
2.然后在Nginx的主配置文件内写一个include,需要用到stream段
1 |
echo "include /etc/nginx/tcpconf.d/*.conf;" >> /etc/nginx/nginx.conf |
或者在Nginx添加strem目录
1 2 3 4 5 |
cd /etc/nginx/ vi nginx.conf #在配置文件中添加以下内容 # tcp/ip proxy include /etc/nginx/tcp.d/*.conf; |
3.创建配置文件的目录
1 |
mkdir -p /etc/nginx/tcpconf.d |
新建配置文件
1 |
vi /etc/nginx/tcpconf.d/proxy.conf |
把下面的配置复制到proxy.conf里,upstream的server改成目标的IP和端口,server下面的lisren换成你中转服务器的端口
weight(权重)模式,可以去掉这两个设置让Nginx默认用于轮询模式
1 2 3 4 5 6 7 8 9 10 11 |
stream { upstream tcpssh { server 落地机IP:端口号 weight=3; server 落地机IP:端口号 weight=5; } server { listen 58888; listen 58888 udp; proxy_pass tcpssh; } } |
4.用 nginx -t 检查配置
输出以下内容表示OK,否则根据提示进行配置文件修改
1 2 |
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful |
5.查看nginx端口
1 |
ss -ntlp| grep -i nginx |
6.若是动态DDNS_NAT/VDS请用定时任务进行更新
执行 crontab -e命令
1 |
0 */12 * * * systemctl restart nginx |
Nginx用到的命令
1 2 3 4 5 6 7 8 |
查看状态 systemctl status nginx.service 重启nginx systemctl restart nginx.service 启动nginx systemctl start nginx.service |
至此全部工作完成!
centos7+
下面说下centos7+系统配置方法,其实方法都一样,只不过安装命令不同,防止小白看不懂,在单独写一下
1.安装nginx
1 |
yum install -y epel-release && yum install -y nginx |
2:运行Nginx
1 |
systemctl start nginx.service |
2.1:设置Nginx转发配置文件
1 2 |
mkdir /etc/nginx/tcp.d/ vi /etc/nginx/tcp.d/zf.conf |
然后输入转发配置:
1 2 3 4 5 6 7 8 9 10 |
stream{ upstream tcpssh { server IP(域名):端口; } server{ listen NAT/VPS外部端口; listen NAT/VPS外部端口 udp; proxy_pass tcpssh; } } |
2.2 在Nginx添加strem目录
1 2 3 4 5 |
cd /etc/nginx/ vi nginx.conf #在配置文件中添加以下内容 # tcp/ip proxy include /etc/nginx/tcp.d/*.conf; |
或采用echo命令
1 |
echo "include /etc/nginx/tcpconf.d/*.conf;" >> /etc/nginx/nginx.conf |
3:用 nginx -t 检查配置
输出
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
3.1 关闭防火墙并禁止开机启动启动防火墙
1 2 |
systemctl stop firewalld.service systemctl disable firewalld.service |
4:设置开机启动nginx
1 |
systemctl enable nginx && systemctl start nginx |
5:查看Nginx运行状态
1 |
ss -ntlp| grep -i nginx |
6重启Nginx
1 2 |
systemctl restart nginx service nginx restart |
6.1:禁止selinux
1 2 |
sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config setenforce 0 |
6.2 若是动态DDNS_NAT/VDS请用定时任务进行更新
执行 crontab -e命令
1 |
0 */12 * * * systemctl restart nginx |
教程完!