NetworkManager 连接快捷方式

NetworkManager 连接快捷方式

我建议在http://brainstorm.ubuntu.com/idea/27164/,但它被标记为已实施。有人能解释一下我该怎么做吗?我想要面板上特定连接(vpn 或宽带)的快捷方式(一键连接)。

答案1

您应该能够创建调用的快捷方式命令行建立连接:

nmcli con up id “您的连接名称”

这是我在系统终端中运行该程序的结果:

% nmcli con up id "PPTP VPN Testing"
Active connection state: activating
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/2
state: VPN connecting (3)
state: VPN connecting (getting IP configuration) (4)
Connection activated

答案2

NetworkManager 具有 D-Bus 接口,您可以在其他程序或脚本中使用它。

例如,我使用以下命令设法连接我的一个网络管理器的 VPN 连接:

 qdbus --system \
   org.freedesktop.NetworkManager \
   /org/freedesktop/NetworkManager \
   org.freedesktop.NetworkManager.ActivateConnection \ #-- this is a method
   org.freedesktop.NetworkManagerUserSettings \ #-- arg 1
   /org/freedesktop/NetworkManagerSettings/4 \ #-- arg 2
   /org/freedesktop/NetworkManager/Devices/1 \ #-- arg 3
   / #-- dumb arg 4 (needed for wifi only)

您可以使用软件包qdbusviewer中的工具浏览您的 D-Bus 基础架构qt4-dev-tools。仅限 CLI 的qdbus来自libqt4-dbus

NetworkManager 的 D-Bus API 已记录这里

当您找到所需的参数(连接号、设备号等)时,您可以将这些行保存为 shell 脚本并在面板上创建启动器以快速访问它。

我个人不太在意,只需额外点击两次即可。毕竟,我并不会经常连接 VPN,因此不会因此而受苦。

答案3

为了方便起见,我使用 cnetworkmanager 和这个 python 脚本。该脚本首先启动 LAN 连接,然后打开 VPN。

#!/usr/bin/env python
import subprocess
import time
import sys

def getConnectionState():
  """Returns 'CONNECTED' or 'DISCONNECTED'
  """
  p = subprocess.Popen("cnetworkmanager --state", shell=True, stdout=subprocess.PIPE)
  stdout = p.communicate()
  result = stdout[0].split('\n')[0]
  return result

def isConnected():
  return getConnectionState() == 'CONNECTED'

def connectEthernet(name='myethernet'):
  p = subprocess.Popen("cnetworkmanager --activate-connection=user,%s,," % name, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

def connectVPN(name='myvpn'):
  p = subprocess.Popen("cnetworkmanager --activate-connection=user,%s,eth0," % name, shell=True)

def timeout():
  while True:
    time.sleep(0.2)
    if isConnected():
      break

connectEthernet()
timeout()
connectVPN(sys.argv[1])

相关内容