Ярлык соединения с NetworkManager

Я предложил реализовать эту функцию в http://brainstorm.ubuntu.com/idea/27164/ , но она была помечена как уже реализованная. Может ли кто-нибудь пролить свет на то, как я могу это сделать? Мне бы хотелось, чтобы на моей панели был ярлык для определенного соединения (vpn или широкополосный) (одним щелчком мыши).

3
задан 12 February 2011 в 17:50

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])
0
ответ дан 12 February 2011 в 17:50

Вы должны иметь возможность создавать ярлыки, которые вызывают nmcli для установления соединений:

nmcli con up id «имя вашего соединения»

[ 114] Вот результат, когда я запускаю это в терминале в моей системе:

% 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
0
ответ дан 12 February 2011 в 17:50

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)

Вы можете просматривать инфраструктуру D-Bus с помощью инструмента qdbusviewer из пакета qt4-dev-tools , Только для CLI qdbus из libqt4-dbus.

API-интерфейс D-Bus NetworkManager описан здесь , .

Когда вы найдете нужные параметры (номер соединения, номер устройства и т. Д.), Вы можете сохранить строки в виде сценария оболочки и создать панель запуска для быстрого доступа к ней.

Лично я не беспокоюсь и просто делаю два дополнительных клика. В конце концов, я не слишком часто подключаюсь к VPN, чтобы страдать от них.

0
ответ дан 12 February 2011 в 17:50

Другие вопросы по тегам:

Похожие вопросы: