跳至主要内容

nginx添加stream模块支持TCP转发的方法

Nginx 是一款高性能的开源Web服务器,它也可以用作反向代理服务器和负载均衡器,而--with-stream 模块是 Nginx 的一个强大功能,允许在同一个端口上同时处理TCP和UDP流量。nginx特性很丰富,我们日常使用最多的恐怕大多是其master worker模式下的反向代理,实际就意味着nginx的特性仅仅被开发应用了一部分。以gost或其他工具如realm的隧道/通道搭建应用为为例,如果使用基于tcp的tls,就需要Nginx已安装并加载stream模块的支持。

1.有什么好处

web服务、代理等是nginx的核心功能,在涉及其核心功能的支持上必定更为专业、强大。总体而言,结合隧道工具配置端口复用的好处如下:

    • 首先,已部署有相关服务的站点,可以大幅增加代理流量的区分和检测难度,尤其在相关服务处于活跃状态、接收实际请求并进行正常响应的场景下。
    • 其次,nginx是使用c进行开发的,以及nginx本身的设计和特性,相比代理或隧道工具,其握手效率一定会更高,而nginx的高并发性能对于性能偏低的节点也很友好。
    • 长连接、多路复用本身就是nginx设计的核心要领。
    • nginx配置可繁可简,可匹配工具的适用配置空间。

2.“升级”安装

在已安装nginx的情况下,可以使用“nginx -V”命令查询nginx以及相应模块的安装情况,重点观察stream模块是否已安装加载,否则只能基于HTTP/1.1进行分流、复用,也就是说,前置nginx只能匹配http(s)、ws/wss等。

如果找不到“--with-stream”等内容,那么stream模块是缺失的,需要对nginx进行升级。HTTP/1.1是对HTTP的小升级,ws、wss都是基于http/1.1的应用层协议,因此在缺少stream模块的情况下是可以正常工作的。如需支持socks5或其他基于TCP/UDP的协议,stream模块必不可少。如在使用gost tcp+tls的情况下,nginx前置就需要依赖stream模块。

stream模块可以通过重新编译安装或进行升级。通过升级至nginx最新版本,可以解决缺少模块的问题。有关nginx升级,参照以下链接的官方文档,Ctrl+C&Ctrl+V即可。主要工作包括GPG key的下载、签名认证、添加nginx官方源。

http://nginx.org/en/linux_packages.html#Debian

“升级”命令依然是使用apt install,如已有nginx部署,可在安装接近完成时选择保留([default=N])当前配置文件。

3.全新安装

要全新安装完整的包含--with-stream 模块的nginx,需要编译,可按照以下步骤进行操作:

step 1 下载和解压Nginx源代码

前往 Nginx 官方网站(https://nginx.org/)下载最新的稳定版本的 Nginx 源代码。然后,使用以下命令解压下载的源代码:

curl -O https://nginx.org/download/nginx-1.25.1.tar.gz
tar -zxvf nginx-1.25.1.tar.gz
cd nginx-1.25.1

step 2 配置编译选项,编译并安装Nginx

./configure --with-stream
make
sudo make install

以上就是适用于ubuntu 20.04+和debian 10+全新安装带有--with-stream模块Nginx的过程,从下载并解压Nginx源代码、配置编译选项、编译和安装Nginx以及最后的验证。

两种方法,各有适用场景。多数情况下,采用系统自带源通过apt安装的nginx都不会带有stream模块,第一种方式可能更加适合,但实际安装部署过程中在可选保留当前配置文件的同时同样会删除、替换原有二进制文件。

评论

此博客中的热门博文

用于接收短信和激活任何服务的虚拟号码

当在社交网络、聊天工具、C2C网站等服务注册账号时,需要接收验证码短信。 5SIM 提供使用临时虚拟号码通过验证的机会,而无需使用个人手机号码。通过本服务,大家能够在线接到验证码注册许多账号。 关于5SIM服务 有50多万个来自180个国家的手机号码同时在线 可以找到许多国家/地区的用于注册账号的手机号码,包括英国、 俄罗斯、瑞典、德国、法国、印度、印度尼西亚、马来西亚、柬埔寨、蒙古、加拿大、美国、泰国、荷兰、西班牙等等。 天天添加新的虚拟号码 接收从所选网站的无限数量短信。一个号码的价格从 1 卢布起,这样大家不必支付移动运营商的月费 使用手机号码一次并重复接收短信 24/7获取手机号码。本平台运行完全自动,瞬间就接到带有验证码的短信。 在3分钟内注册账号 面向开发者和用户的 API 在接码平台、高质量VPN/代理、浏览器的用户代理和可靠的软件的帮助下设置批量注册账号的过程 手续费 以最低手续费充值余额 (Visa/MasterCard/MIR, QIWI, UnionPay, GCash, KakaoPay, Apple Pay等等) 24/7 客户支持 客户支持提供24小时服务,通过Freshdesk系统,聊天工具和社交网络会帮助解决所有问题。 虚拟手机号使用方式如下: 为赚取收入或个人任务注册许多账号 注册账号时,网站要求指定手机号码。大多数情况下,一个号码只能注册一个账号。如果使用虚拟号码,则可以在社交网络上不受限制地注册账号。网站管理员、SMM和ORM专家会赞同这种功能。对他们来说,账号是一个管理和推广工作项目的工具。 保持匿名性 如果知道个人号码,能够查到其所有者的姓名、护照号码、居住地址等有关信息。使用接码平台时,就完全排除信息泄露可能性。 保护自己免受骗子的侵害 大家可能遇到过要求输入手机号码以无受速度限制下载文件的网站。在此类网站上输入手机号码的时候,能面临开启付费订阅的风险。因此,我们建议使用一次性号码。 参与促销活动获取折扣 各种服务和网络商店举行促销活动来赠送礼物。为此,需要输入手机号码。在这种情况下,规则是一个人只能收到一件礼物。这就是输入手机号码并进行验证的原因。用于在线接码的虚拟号码可以绕过所有限制并享受任何免费优惠品。 摆脱地区限制 一些互联网服务不允许特定地区的居民进行注册。原因可能有所不同。例如,俄罗斯用户经常无法访问乌克兰网站...

一键更改默认 ssh 端口的脚本

99%的vps到手,默认都是22端口,加上上面有的人root密码极其简单,很容易被暴力破解,成为肉鸡等等。因此最好修改SSH默认的22端口为其他随机端口号。懒到家的我,肯定是一键脚本啊,因此,刺激了这个小脚本。 功能 自定义端口修改SSH默认的22端口 提醒 修改后记得修改防火墙端口,放行你的新SSH端口,装宝塔的也要记得放行。新端口用不了,很大概率是防火墙的问题。 免责 这个脚本是我自用的脚本,测试的机器和系统有限,难免造成失联等情况, 不要用于生成环境、不要用于生成环境、不要用于生成环境 。 脚本 bash <( curl -Ls https://raw.githubusercontent.com/Netflixxp/port/main/port.sh ) 或者 wget -O port.sh https://raw.githubusercontent.com/Netflixxp/port/main/port.sh && chmod +x port.sh && clear && ./port.sh

VPS无人直播教程

准备工作 1、VPS一台(国内平台直播建议选择阿里云或腾讯云、国外平台直播请随意选择海外商家的VPS即可) 本人使用的VPS官网: 点此进入 2、VPS重置好CentOS系统 3、安装FinalShell SSH工具: Windows版下载地址: 点此下载 macOS版下载地址: 点此下载 mac版安装路径:/Applications/FinalShell.app/ 配置文件路径:/Users/$USER/Library/FinalShell/ mac版卸载删除安装目录:/Applications/FinalShell.app/ 开始搭建直播 1、使用 FinalShell SSH工具连接我们的VPS 详见 YouTube 视频教程 2、安装 screen 窗口管理工具 yum -y install screen 3、新建一个窗口 screen -S stream 4、创建 Linux 直播软件 ffmpeg 目录及视频储存目录 mkdir /home/mg-1 mkdir /home/mg-1/ffmpeg 4-1、创建无人直播视频储存目录 mkdir /home/mg-2 mkdir /home/mg-2/video 5、进入 ffmpeg 目录 cd /home/mg-1/ffmpeg 6、复制、粘贴运行以下一键脚本 #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH #=================================================================# # System Required: CentOS7 X86_64 # # Description: FFmpeg Stream Media Server # # Author: LALA # # Website: https://www.lala.im # #======...