本文中提到的一些方法,对于其他一些网络服务如Shadowsocks一样适用。
开始前先把v2ray关掉
sudo systemctl stop v2ray
默认的v2ray在安装的时候是适用root权限启动的。强迫症私以为这不太好。
创建一个“假的”主目录
sudo mkdir -p /home/empty sudo chmod 700 /home/empty
为v2ray新建一个账户
sudo useradd --home-dir /home/empty/ --shell /usr/sbin/nologin --no-create-home v2ray
建好之后立刻把日志目录的所有者改成v2ray
sudo chown -R v2ray:v2ray /var/log/v2ray
把原来的启动项禁用
sudo systemctl disable v2ray
你会看到Created symlink from /etc/systemd/system/multi-user.target.wants/v2ray.service to /usr/lib/systemd/system/v2ray.service.
并在/etc/systemd/中创建一个新的v2ray.service,保证v2ray以v2ray账户运行
sudo vim /etc/systemd/system/v2ray.service sudo chmod 755 /etc/systemd/system/v2ray.service sudo systemctl daemon-reload
/etc/systemd/system/v2ray.service内容如下。注意如果和你机器配置不一样的地方要改过来,比如v2ray二进制文件的位置和配置文件的位置。
[Unit] Description=V2Ray Service After=network.target Wants=network.target [Service] PermissionsStartOnly=true Type=simple PIDFile=/var/run/v2ray.pid ExecStart=/usr/bin/v2ray/v2ray -config /etc/v2ray/config.json Restart=on-failure User=v2ray Group=v2ray [Install] WantedBy=multi-user.target
然后通过
sudo systemctl start v2ray sudo systemctl status v2ray
尝试启动v2ray并检查其状态。如果没问题,重新建立v2ray的开机启动
sudo systemctl enable v2ray
你可能会注意到Created symlink from /etc/systemd/system/multi-user.target.wants/v2ray.service to /etc/systemd/system/v2ray.service.
这是因为在systemd体系中/etc/systemd/system中的单元比/usr/lib/systemd/system/中的优先级高。在具有同名单元的情况下,生效的是优先级较高的目录中的。