simple-obfs CentOS7开机自启systemd服务文件:一步到位的配置方法
装完simple-obfs,发现每次重启服务器都得手动起一次?别急,这不是你配置错了,是你没让它“随系统醒”。CentOS7不像老版本那样靠rc.local混日子,现在得靠systemd伺候。今天这篇,直接给你一份能用的service文件,复制粘贴就能开机自启,别再手敲命令了。

确认simple-obfs已安装并能手动运行
先别急着写service文件,确认你的simple-obfs能跑再说。输入下面这条:
obfs-server -r 127.0.0.1:8388 --plugin obfs-server --plugin-opts "obfs=http;failover=127.0.0.1:8080" -p 8139
如果终端没报错,说明程序本身没问题。接下来才让systemd接管。
创建专用的systemd服务文件
CentOS7的systemd单元文件统一放在/etc/systemd/system/,新建一个名叫simple-obfs.service的文件:

sudo vim /etc/systemd/system/simple-obfs.service
把下面内容整块丢进去,**别改路径,除非你知道自己在干什么**:
[Unit]
Description=Simple-obfs traffic obfuscation
After=network.target
[Service]
Type=simple
User=nobody
Group=nobody
ExecStart=/usr/local/bin/obfs-server -r 127.0.0.1:8388 --plugin obfs-server --plugin-opts "obfs=http;failover=127.0.0.1:8080" -p 8139
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
保存退出后,重载systemd让它认识新文件:
sudo systemctl daemon-reexec && sudo systemctl daemon-reload
设置开机自启并立即启动
一条命令搞定:
sudo systemctl enable --now simple-obfs.service
看到Created symlink字样就说明写进启动项了。再用systemctl status simple-obfs瞄一眼,**Active: active (running)**绿灯亮起,就齐活。
常见坑:路径写错、权限不足、端口被占
1. ExecStart路径不对:which obfs-server确认实际路径,别把/usr/bin写成/usr/local/bin。
2. nobody用户没权限监听低端口:如果你把-p改成80或443,需要把User=root,或者前面加iptables转发。
3. 重启后失效:忘记enable,只start了,下次开机照样裸奔。
想多开实例?模板单元帮你省力
一台机器要给三个站点做混淆,复制三份service文件太土。用模板单元,一份文件顶N份:
把文件名改成simple-obfs@.service,把-p 8139换成-p %i,然后:
sudo systemctl enable --now simple-obfs@8139
sudo systemctl enable --now simple-obfs@8140
sudo systemctl enable --now simple-obfs@8141
一条模板,端口随传随起,**省心到飞起**。
日志排查:别盲猜,journalctl直接看
启动失败别急着重装,先看日志:
sudo journalctl -u simple-obfs -e
报什么错一行行给你列出来,**对症下药用不了三分钟**。
照着上面步骤,五分钟就能把simple-obfs钉死在systemd里,**重启多少次它都乖乖爬起**。下次再有人问你“CentOS7怎么让simple-obfs开机自启”,直接把这篇文章甩过去,让他照抄就能交差。

