使用ss和NGINX做的简单网络代理服务

Gitana ·
更新时间:2024-11-10
· 626 次阅读

一、流程图如下:

①:需要访问④的设备(没有对③④的直接访问权限),用ss客户端对②发起请求

②:固定ip的ecs,接受到①的数据请求后用NGINX转发到③,可以在这里对①的请求合法性做初步校验

③:固定ip的ecs,用白名单限制只接受②的ip访问;用ss服务器把收到的请求转发到④

④:被限制访问的服务器,只能接受③的访问

二、配置文件如下:

②中/etc/nginx/nginx.conf最外层增加配置

stream {
    server {
        listen 8001;
        proxy_pass xx.xx.xx.xx:3344;
    }
   server {
        listen 8002;
        proxy_pass xx.xx.x.xx:3341;
    }
   server {
        listen 8003;
        proxy_pass 127.0.0.1:3001;
    }

}

③中防火墙配置文件/etc/firewalld/zones/public.xml


 
 
 
 
  放通任意ip访问服务器的22端口
 
 
 

③中ss服务器配置文件/etc/ss.json

{
    "server":"0.0.0.0",
    "server_ipv6":"[::]",
    "server_port":3344,
    "local_address":"127.0.0.1",
    "local_port":1080,
    "password":"psd",
    "timeout":120,
    "method":"aes-256-cfb",
    "protocol":"origin",
    "protocol_param":"",
    "obfs":"plain",
    "obfs_param":"",
    "redirect":"",
    "dns_ipv6":false,
    "fast_open":false,
    "workers":1
}

三、涉及到的命令

②NGINX命令:

systemctl enable nginx.service设置开机启动

systemctl start nginx.service启动nginx服务

systemctl enable nginx.service设置开机自启动

systemctl disable nginx.service停止开机自启动

systemctl status nginx.service查看服务当前状态

systemctl restart nginx.service重新启动服务

nginx -t # 验证配置文件
nginx -s reload # 重新加载
nginx -s stop # 快速停止
nginx -s quit # 正常停止
nginx -c dir/nginx.conf # 指定配置文件路径

③防火墙命令 :

查看防火墙的状态的命令为:sudo systemctl status firewalld

打开防火墙的方式有两种,一种是打开后重启会恢复回原来的状态,命令为:sudo systemctl start firewalld;另一种是打开后重启不会恢复到原来的状态,命令为:sudo systemctl enable firewalld,这种方式输入命令后要重启系统才会生效。

关闭防火墙的方式也有两种,和打开相对应,命令分别为

sudo systemctl stop firewalld

sudo systemctl disable firewalld。

③启动ss服务命令:

nohup  ssserver -d start -c /etc/ss.json &


作者:yeyue_zar



ss 代理 Nginx

需要 登录 后方可回复, 如果你还没有账号请 注册新账号