首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ProtonVPN自动启动配置错误

ProtonVPN自动启动配置错误
EN

Unix & Linux用户
提问于 2020-01-13 11:24:03
回答 1查看 738关注 0票数 0

我正试图在我的Kubuntu机器上使ProtonVPN自动启动。

我试过遵循指南。

我试过的最新一个是来自blog.x86txt.com的。但是当使用以下命令时:

代码语言:javascript
运行
复制
systemctl enable protonvpn-cli.service && systemctl start protonvpn-cli.service

我从终端机收到以下信息:

代码语言:javascript
运行
复制
Job for protonvpn-cli.service failed because the control process exited with error code.
See "systemctl status protonvpn-cli.service" and "journalctl -xe" for details.

当我管理科曼德

代码语言:javascript
运行
复制
systemctl status protonvpn-cli.service

我得到以下输出:

代码语言:javascript
运行
复制
 ● protonvpn-cli.service - ProtonVPN CLI Auto-Start
   Loaded: loaded (/etc/systemd/system/protonvpn-cli.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2020-01-13 11:19:20 CET; 13s ago
  Process: 2177 ExecStart=/usr/bin/protonvpn-cli last-connect (code=exited, status=203/EXEC)

jan 13 11:19:20 teuton-VirtualBox systemd[2177]: protonvpn-cli.service: Failed at step EXEC spawning /usr/bin/protonvpn-cli
jan 13 11:19:20 teuton-VirtualBox systemd[1]: protonvpn-cli.service: Control process exited, code=exited status=203
jan 13 11:19:20 teuton-VirtualBox systemd[1]: protonvpn-cli.service: Failed with result 'exit-code'.
jan 13 11:19:20 teuton-VirtualBox systemd[1]: Failed to start ProtonVPN CLI Auto-Start.
jan 13 11:19:20 teuton-VirtualBox systemd[1]: protonvpn-cli.service: Service hold-off time over, scheduling restart.
jan 13 11:19:20 teuton-VirtualBox systemd[1]: protonvpn-cli.service: Scheduled restart job, restart counter is at 5.
jan 13 11:19:20 teuton-VirtualBox systemd[1]: Stopped ProtonVPN CLI Auto-Start.
jan 13 11:19:20 teuton-VirtualBox systemd[1]: protonvpn-cli.service: Start request repeated too quickly.
jan 13 11:19:20 teuton-VirtualBox systemd[1]: protonvpn-cli.service: Failed with result 'exit-code'.
jan 13 11:19:20 teuton-VirtualBox systemd[1]: Failed to start ProtonVPN CLI Auto-Start.
log file: -binfmt_misc.automount  protonvpn-cli.service           

Teuton是用户的名字。

我会在下面粘贴我的系统文件。

代码语言:javascript
运行
复制
[Unit]
Description=ProtonVPN CLI Auto-Start
After=network.target

[Service]
Type=forking
User=teuton
ExecStart=/usr/bin/protonvpn-cli last-connect
ExecReload=/usr/bin/protonvpn-cli disconnect && /usr/bin/protonvpn-cli last-connect
ExecStop=/usr/bin/protonvpn-cli disconnect
Restart=always

[Install]
WantedBy=multi-user.target

在这里,我从--中删除了--last-connect--disconnect命令中的blog.x86txt.com,以查看它是否对我有任何帮助。

编辑:

下面是journalctl -xe输出:

代码语言:javascript
运行
复制
-- Subject: Unit anacron.service has finished start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit anacron.service has finished starting up.
--
-- The start-up result is RESULT.
jan 13 14:04:47 teuton-VirtualBox anacron[1883]: Anacron 2.3 started on 2020-01-13
jan 13 14:04:47 teuton-VirtualBox anacron[1883]: Normal exit (0 jobs run)
jan 13 14:17:01 teuton-VirtualBox CRON[1896]: pam_unix(cron:session): session opened for user root by (uid=0)
jan 13 14:17:01 teuton-VirtualBox CRON[1897]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
jan 13 14:17:01 teuton-VirtualBox CRON[1896]: pam_unix(cron:session): session closed for user root
jan 13 14:20:16 teuton-VirtualBox systemd[1]: Starting Message of the Day...
-- Subject: Unit motd-news.service has begun start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit motd-news.service has begun starting up.
jan 13 14:20:16 teuton-VirtualBox systemd[1]: Started Message of the Day.
-- Subject: Unit motd-news.service has finished start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit motd-news.service has finished starting up.
--
-- The start-up result is RESULT.
jan 13 15:05:08 teuton-VirtualBox systemd[1]: Started Run anacron jobs.
-- Subject: Unit anacron.service has finished start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit anacron.service has finished starting up.
--
-- The start-up result is RESULT.                                                                                                                   
jan 13 15:05:08 teuton-VirtualBox anacron[1959]: Anacron 2.3 started on 2020-01-13                                                                  
jan 13 15:05:08 teuton-VirtualBox anacron[1959]: Normal exit (0 jobs run)                                                                           
jan 13 15:17:01 teuton-VirtualBox CRON[1969]: pam_unix(cron:session): session opened for user root by (uid=0)
jan 13 15:17:01 teuton-VirtualBox CRON[1970]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
jan 13 15:17:01 teuton-VirtualBox CRON[1969]: pam_unix(cron:session): session closed for user root
jan 13 15:24:32 teuton-VirtualBox sudo[1983]:   teuton : TTY=pts/2 ; PWD=/etc/systemd/system ; USER=root ; COMMAND=/usr/sbin/visudo
jan 13 15:24:32 teuton-VirtualBox sudo[1983]: pam_unix(sudo:session): session opened for user root by teuton(uid=0)
jan 13 15:42:02 teuton-VirtualBox sudo[1983]: pam_unix(sudo:session): session closed for user root

teuton@teuton-VirtualBox:/etc/systemd/system$ sudo systemctl enable protonvpn-cli.service && systemctl start protonvpn-cli.service
[sudo] lösenord för teuton:
Job for protonvpn-cli.service failed because the control process exited with error code.
See "systemctl status protonvpn-cli.service" and "journalctl -xe" for details.
teuton@teuton-VirtualBox:/etc/systemd/system$ journalctl -xe
jan 13 15:42:25 teuton-VirtualBox systemd[2085]: protonvpn-cli.service: Failed at step USER spawning /usr/bin/protonvpn: No such process
-- Subject: Process /usr/bin/protonvpn could not be executed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The process /usr/bin/protonvpn could not be executed and failed.
--
-- The error number returned by this process is 3.
jan 13 15:42:25 teuton-VirtualBox systemd[1]: protonvpn-cli.service: Control process exited, code=exited status=217
jan 13 15:42:25 teuton-VirtualBox systemd[1]: protonvpn-cli.service: Failed with result 'exit-code'.
jan 13 15:42:25 teuton-VirtualBox systemd[1]: Failed to start ProtonVPN CLI Auto-Start.
-- Subject: Unit protonvpn-cli.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit protonvpn-cli.service has failed.
--
-- The result is RESULT.
jan 13 15:42:25 teuton-VirtualBox systemd[1]: protonvpn-cli.service: Service hold-off time over, scheduling restart.
jan 13 15:42:25 teuton-VirtualBox systemd[1]: protonvpn-cli.service: Scheduled restart job, restart counter is at 5.
-- Subject: Automatic restarting of a unit has been scheduled
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Automatic restarting of the unit protonvpn-cli.service has been scheduled, as the result for
-- the configured Restart= setting for the unit.
jan 13 15:42:25 teuton-VirtualBox systemd[1]: Stopped ProtonVPN CLI Auto-Start.
-- Subject: Unit protonvpn-cli.service has finished shutting down
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit protonvpn-cli.service has finished shutting down.
jan 13 15:42:25 teuton-VirtualBox systemd[1]: protonvpn-cli.service: Start request repeated too quickly.
jan 13 15:42:25 teuton-VirtualBox systemd[1]: protonvpn-cli.service: Failed with result 'exit-code'.
jan 13 15:42:25 teuton-VirtualBox systemd[1]: Failed to start ProtonVPN CLI Auto-Start.
-- Subject: Unit protonvpn-cli.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit protonvpn-cli.service has failed.
--
-- The result is RESULT.
lines 2394-2435/2435 (END) 

编辑2:这是我的sudo visudo输出:

代码语言:javascript
运行
复制
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
teuton ALL = (root) NOPASSWD: /usr/local/bin/protonvpn
EN

回答 1

Unix & Linux用户

发布于 2020-04-15 22:06:02

系统d单元配置中的路径和可执行文件与sudoers.d文件中的路径和可执行文件不匹配。

sudoers.d文件提到了/usr/local/bin/protonvpn (请注意local,而不是protonvpn后面的-cli扩展名),这在我看来是正确的,因为这既是ProtonVPN.com在您在问题中列出的说明中指出的,也是我自己的机器上的。(我不能检查你的第一个链接,它似乎死了)。

另一方面,systemd单元描述列出了/usr/bin/protonvpn-cli (没有local,但有-cli扩展):

代码语言:javascript
运行
复制
ExecStart=/usr/bin/protonvpn-cli last-connect  
ExecReload=/usr/bin/protonvpn-cli disconnect && /usr/bin/protonvpn-cli last-connect  
ExecStop=/usr/bin/protonvpn-cli disconnect*

促使我研究这个方向的是您的日志: systemd似乎无法在ExecStart上启动所请求的程序:

代码语言:javascript
运行
复制
Failed at step EXEC spawning /usr/bin/protonvpn-cli

然后它就直接出错了。

您应该通过运行命令which protonvpnwhich protonvpn-cli来检查机器上正确的路径和可执行文件。对我来说,只有第一个返回路径,它是/usr/local/bin/

使用上一步中确定的正确文件和路径更新sudoers.d和systemd单元配置。

Side注意事项我建议在sudoers.d文件中更具体。现在,拥有用户权限就足以完全控制您的VPN (包括关闭它,或禁用杀死开关)。最好只授予对特定命令protonvpn connectprotonvpn reconnect的无密码访问权限。如下所示(假设/usr/local/bin/protonvpn是正确的路径):

代码语言:javascript
运行
复制
teuton ALL = (root) NOPASSWD: /usr/local/bin/protonvpn connect,/usr/local/bin/protonvpn reconnect

然后在systemd单元配置中:

  1. ExecReload=替换您当前拥有的/usr/local/bin/protonvpn reconnect命令,这实际上做了完全相同的事情,它的优点是不必允许disconnect命令。
  2. 完全删除您的ExecStop=/usr/bin/protonvpn-cli disconnect行。它是不必要的(在关机时,您的VPN无论如何都会断开连接,就像它在我的机器上没有这一行一样)。

现在,您不再需要sudoers.d文件中的“断开”命令了,您刚刚增强了计算机的安全性!;-)

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/561832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档