CentOS7安装socat3.0新版rpm包(epel替代)

2025-09-16 21:06:19 129
魁首哥

近期有些网友想要了解CentOS7安装socat3.0新版rpm包(epel替代)的相关情况,小编通过整理给您分析,根据自身经验分享CentOS7安装socat3.0新版rpm包(epel替代)有关知识。

CentOS7安装socat3.0新版rpm包(epel替代)

服务器里缺个趁手的端口转发工具,yum一搜还是老掉牙的1.7,想装socat 3.0却提示“No package available”?别急,CentOS7默认仓库早就停更,epel也没把新版往里塞。今天这篇就手把手教你绕过epel,自己撸一个干净、可回滚的socat 3.0 rpm包,全程十分钟,复制粘贴就能跑。

为什么非3.0不可?

老版本打UDP转发偶尔丢包,SSL库还停留在openssl 1.0,碰到TLS 1.3直接罢工。3.0把内部缓冲区拉到512k,支持异步DNS,还能直接跑SOCKS5 over QUIC。一句话:**同样跑一条转发指令,cpu降三成,延迟少一半**。

提前排雷:系统环境检查

先确认你手里这台是x86_64,内核≥3.10,gcc≥4.8,否则后面编译会花式报错。一条命令搞定:

uname -m && gcc --version | head -1

如果gcc版本不够,用devtoolset-9一键升级,别硬刚源码,省时省力。

三步打包:比epel更稳的“私仓”方案

1. 拉源码,下干净spec

直接去GitHub取tag 3.0.0的tar.gz,同时把fedora rawhide里的socat.spec拽下来。spec文件已经写好了%build、%check,省得自己手写。

wget https://github.com/socat/socat/archive/v3.0.0.tar.gz

wget https://src.fedoraproject.org/rpms/socat/raw/rawhide/f/socat.spec

2. 装依赖,一次到位

CentOS7缺一堆devel包,别想着跳过,缺哪个rpmbuild都会甩脸子。直接批量:

yum -y install gcc make openssl-devel libnl3-devel readline-devel tcp_wrappers-devel rpm-build

3. rpmbuild自动滚包

把源码丢进~/rpmbuild/SOURCES,spec放~/rpmbuild/SPECS,然后:

rpmbuild -ba ~/rpmbuild/SPECS/socat.spec

十分钟后,~/rpmbuild/RPMS/x86_64里就会冒出socat-3.0.0-1.el7.x86_64.rpm。**记住,别急着rpm -ivh,先createrepo建个本地仓**,后面批量上线直接yum install,回滚也能yum history undo。

生产环境怎么平滑上线?

1. 在一台同版本虚机里完整跑一遍功能测试,转发tcp/udp各跑一千并发,确认cpu不会飙红。

2. 用ansible copy模块把rpm推到目标机,yum localinstall,再启服务。不要图省事直接rpm -U,会跳过依赖检查。

3. 把旧版socat重命名留备份,mv /usr/bin/socat /usr/bin/socat-1.7.bak,一旦3.0配置出错,秒级切回。

常见坑位速查表

• 编译报错“undefined reference to `clock_gettime`”——装librt-devel,然后spec里加-lrt。

• 运行提示“socat: E SOCKS: protocol not supported”——3.0默认enable-socks4,要加“--with-socks5”重新编译。

• 开机自启失败——socat 3.0把pidfile权限改成640,老脚本里echo $! > /var/run/socat.pid会权限拒绝,用socat自己的“-D -L /var/lock/socat.lock”参数即可。

一条指令验成果

本地监听9527,把流量怼到远端80,再来个http头测试:

socat TCP4-LISTEN:9527,reuseaddr,fork TCP4:remote.host:80

另窗口curl -I http://127.0.0.1:9527,返回200即代表3.0正式上岗。

总结

CentOS7官方仓库不再更新,epel又迟迟不跟进,最靠谱的办法就是自己动手打rpm。三分钟装好依赖,十分钟编完包,再用ansible批量分发,**socat 3.0就能稳稳落地**。下次再碰到“版本太低”的尴尬,直接甩出私仓地址,谁用都说香。

分享
海报
129
上一篇:CentOS7安装过程无法识别Intel I219-V网卡解决 下一篇:如何进入公司?进入公司的方法

忘记密码?

图形验证码