即使有活动的 vpn 客户端连接,如何停止 pptpd?

即使有活动的 vpn 客户端连接,如何停止 pptpd?

在发出停止 pptpd 的命令后,pptpd 不会停止,直到所有 VPN 客户端都断开连接。以下代码显示发出停止命令后 pptpd 仍在运行。

ubuntu@ip-10-138-31-87:~$ sudo /etc/init.d/pptpd stop
Stopping PPTP: pptpd.
ubuntu@ip-10-138-31-87:~$ ps -ef |grep pptpd
root      5524     1  0 21:46 ?        00:00:00 pptpd [<myIp>:8544 - 0000]                                                                                                 
root      5525  5524  0 21:46 pts/1    00:00:00 /usr/sbin/pppd local file /etc/ppp/pptpd-options 115200 192.168.0.1:192.168.0.234 ipparam <myIP> plugin /usr/lib/pptpd/pptpd-logwtmp.so pptpd-original-ip <myIP>
ubuntu    5564  4668  0 21:50 pts/4    00:00:00 grep --color=auto pptpd

手动断开所有活动的 vpn 客户端连接后,pptpd 便会停止。有没有办法在有活动的 vpn 客户端连接的情况下强制停止 pptpd?

答案1

花费足够的时间来正确编写脚本,您应该能够使用 init 脚本中的 tcpkill 或 cutter 命令,以便在尝试停止守护进程之前关闭连接(假设您还没有尝试使用 kill 命令,并且这里发生了某种形式的自动重生,这可能会限制其有效性)。

http://www.cyberciti.biz/tips/cutting-the-tcpip-network-connection-with-cutter.html http://www.cyberciti.biz/howto/question/linux/kill-tcp-connection-using-linux-netstat.php

答案2

killall pppd

这显然会终止所有 ppp 连接,包括 pptp 客户端

现在我想我们都不再使用 ppp 拨号,所以您不会冒险中断任何活动的互联网连接,所以这对您来说应该有用。

或者,你可以做一个

ps -aux | grep ppp

并获取与 pptp 连接关联的 pid 列表并逐一手动终止它们。

相关内容