Редактировать: Исправлено тогда, когда патч вышел с добавлением конфигурации VPN. Больше не используйте Linux / Ubuntu.
Я установил OpenVPN Network-Manager, выполнив: sudo apt-get install network-manager-openvpn
, который также устанавливает пакет gnome.
Это позволило импортировать конфигурации в соответствии с 13.10, но при новой установке я могу указать файлы .conf
, но после нажатия кнопки «Импорт» диспетчер просто исчезает, и соединение не добавляется.
Я пытался настроить его вручную, что сработало, но через некоторое время мое соединение продолжает прерываться, я полагаю, потому что я не настраивал вручную каждую последнюю деталь очень подробной конфигурации.
Подключаясь через терминал, выполните: sudo openvpn --config /path/to/openvpn.conf
попросил у меня имя пользователя, затем пароль, но затем не подключился.
Что я могу сделать, чтобы это исправить? Мне действительно нужен мой VPN, любая помощь очень ценится.
Редактировать: это ошибка / 1294899
Для повторного открытия очереди: У кого-то есть чрезвычайно хороший обходной путь для этого, и он использовал редактирование вставить это, но это заслуживает отдельного ответа: голосование за повторное открытие ...
Вы правы, это - ошибка администратора сети. Но я (и Вы также) могу обойти его путем выполнения openvpn из командной строки. Вы, вероятно, сделали по крайней мере несколько из этих шагов, но на всякий случай (и в пользу других) я сделаю полное пошаговое.
Сначала установите необходимые пакеты
sudo apt-get install network-manager network-manager-openvpn network-manager-openvpn-gnome
Создайте Файлы , Эти файлы должны бережно храниться и частные в любом случае
<ca>
и </ca>
от client.ovpn в этот файл<cert>
и </cert>
от client.ovpn в этот файл<key>
и </key>
от client.ovpn в этот файл<tls-auth>
и </tls-auth>
от client.ovpn в этот файл В этой точке у меня есть в общей сложности 6 файлов в соответствии с моим openvpn каталогом (включая файл резервной копии)5-9 я только что разработал, как сделать сценарий удара. Копия возгласа следующее в текстовый файл:
#!/bin/bash
sed '1,/<ca>/d;/<\/ca>/,$d' client.ovpn > ca.crt
sed '1,/<cert>/d;/<\/cert>/,$d' client.ovpn > client.crt
sed '1,/<key>/d;/<\/key>/,$d' client.ovpn > client.key
sed '1,/<tls-auth>/d;/<\/tls-auth>/,$d' client.ovpn > ta.key
Я сохранил файл как openvpnconvert в openvpn папке наряду с client.ovpn файлом. Сделанный этим исполняемый файл с командой chmod a+x:
chmod a+x openvpnconvert
И затем выполнил его:
./openvpnconvert
Измените client.ovpn файл
Непосредственно перед тем, как ## — - НАЧИНАЮТ ПОДПИСЬ RSA — – строка добавляет ниже строк и сохраняет
ca ca.crt
cert client.crt
key client.key
tls-auth ta.key
Наконец, необходимо выполнить openvpn от Интерфейса командной строки (CLI)
CD в openvpn папку
cd openvpn
Выполненные openvpn при использовании имен файлов, которые я указал, видят ниже, иначе используют имена файлов.
sudo openvpn --client --config ~/openvpn/client.ovpn --ca ~/openvpn/ca.crt
Я в настоящее время выполняю OpenVPN, который я создал использование точно эти шаги. Надеюсь, что это работает одинаково хорошо на других.
Источники:
Создание файлов - http://naveensnayak.wordpress.com/2013/03/04/ubuntu-openvpn-with-ovpn-file/
Выполнение из командной строки - http://ubuntuforums.org/showthread.php?t=2206811
Я никогда не пытался импортировать эти данные о соединении, но я использовал следование различных случаев:
помещают whatever.conf
вместе с .crt
файл и учетные данные в /etc/openvpn
и запускают/останавливают, соединение VPN с sudo service openvpn whatever start|stop
создают соединение VPN через NetworkManager путем введения данных о соединении вручную. Файл конфигурации для соединения будет помещен в /etc/NetworkManager/system-connections
и может быть отредактирован позже.
Сценарий извлечения:
В ответ на полезный ответ Tamsyn Michael я сделал небольшую программу для автоматизации задачи извлечения. Это производит соответствующие файлы, необходимые для openvpn, затем добавляет эти имена файлов в исходный файл настроек.
//woahguy@askubuntu
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int i = 0;
string buffer, filename, ca, cert, key, auth;
struct _tags { const char* first; const char* last; };
const char* files[] = { "ca.crt", "client.crt", "client.key", "ta.key" };
_tags tags[] = {
{ "<ca>", "</ca>" },
{ "<cert>", "</cert>" },
{ "<key>", "</key>" },
{ "<tls-auth>", "</tls-auth>" }
};
string string_between( string str, const string& from, const string& to ) {
size_t first = str.find(from);
size_t last = str.find(to);
return( str.substr ( first+from.size(),last-first-to.size()));
}
int read_file_to_buffer( string filename )
{
char line[12];
FILE* pFile = fopen( filename.c_str(), "r" );
if( pFile != NULL ) {
while( fgets( line, sizeof( line ), pFile ) ) {
buffer.append( line );
}
} else {
return 1;
}
return 0;
}
int write_buffer_to_file( string buffer, string filename )
{
FILE* pFile = fopen( filename.c_str(), "w" );
if( pFile != NULL ) {
fwrite (buffer.c_str(), sizeof(char), buffer.size(), pFile);
fclose(pFile);
} else {
return 1;
}
return 0;
}
int append_found_tags_to_main( int type )
{
FILE* pFile = fopen( filename.c_str(), "a+" );
if( pFile != NULL ) {
if( type == 1 ) {
fprintf( pFile, "\nca %s\r\ncert %s\r\nkey %s\r\n",
files[0], files[1], files[2] );
} else {
fprintf( pFile, "\nca %s\r\ncert %s\r\nkey %s\r\ntls-auth %s\r\n",
files[0], files[1], files[2], files[3] );
}
fclose(pFile);
}
return 0;
}
int extract_tags( )
{
while (buffer.find(tags[i].first) != std::string::npos ) {
if( i == 0 ) {
ca = string_between( buffer, tags[i].first, tags[i].last);
} else if( i == 1 ) {
cert = string_between( buffer, tags[i].first, tags[i].last);
} else if( i == 2 ) {
key = string_between( buffer, tags[i].first, tags[i].last);
} else if( i == 3 ) {
auth = string_between( buffer, tags[i].first, tags[i].last);
} else {
return 1;
}
i++;
}
return 0;
}
int write_tags( )
{
if( !ca.empty() && !cert.empty() && !key.empty() ) {
write_buffer_to_file( ca, files[0] );
write_buffer_to_file( cert, files[1] );
write_buffer_to_file( key, files[2] );
if( !auth.empty() ) {
write_buffer_to_file( auth, files[3] );
append_found_tags_to_main( 0 );
} else {
append_found_tags_to_main( 1 );
return 1;
}
} else {
return 2;
}
}
int main(int argc, char* argv[])
{
if( argv[1] == NULL ) {
printf("certgrabber<: You need to specify a valid filename to extract from.\r\n");
return 1;
} else {
if( argv[2] != NULL && argv[3] != NULL && argv[4] != NULL && argv[5] != NULL) {
files[0] = argv[2];
files[1] = argv[3];
files[2] = argv[4];
files[2] = argv[5];
}
filename = argv[1];
}
read_file_to_buffer( argv[1] );
if( buffer.empty()){
printf("certgrabber<: You need to specify a valid filename to extract from.\r\n");
return 2;
}
if( extract_tags() == 0 ) {
int result = write_tags();
if( result == 0 ) {
printf("certgrabber<: All certificates and keys successfully extracted.\r\n");
} else if( result == 1 ) {
printf("certgrabber<: Unable to find a TLS auth key, but this isn't exactly an error.\r\n");
} else if( result == 2 ) {
printf("certgrabber<: Something went totally wrong with the certificate files.\r\n");
}
} else {
printf("certgrabber<: Something went wrong while extracting the tags.\r\n");
return 3;
}
return 0;
}
Компиляция и Здание:
Необходимо будет установить g ++ для создания этого
sudo apt-get install g++
Затем от терминала
g++ -c main.cpp -o main.o \ g++ -o certgrabber main.o
У Вас теперь будет 'certgrabber' программа в папке.
Использование программы:
Извлечение для установки по умолчанию имен файлов (ca.crt, client.crt, client.key, tls-auth.key)
./certgrabber settings.ovpn
Извлечение к пользовательским именам файлов
./certgrabber settings.ovpn ca-1.crt client-1.crt client-1.key tls-1.key
Проблема с ДОБАВЛЕНИЕМ VPN из сохраненного .ovpn файла все еще перестала работать.
Это возможно к ADD один вручную.
, Вводят ПОРТ (в .ovpn файле, обычно в нижней части после IP-адреса в "XX" положение:
удаленный ###.###.##.## XX
, Если Ваша VPN является TCP, то флажок для "Использования соединение TCP"
На данном этапе соединение VPN должно быть перечислено в AppIndicator NM как опция. Выберите и протестируйте свое соединение. Я смог добавить TCP и тип UDP соединения, но оно взяло намного больше, чтобы сделать, чем оно имело бы, если бы импорт .ovpn сохраненный файл работал.
Позволяет надежде, они скоро фиксируют это, таким образом, я могу легко добавить другое соединение..., но по крайней мере это - работа вокруг этого, должен помочь людям, расстроенным как, я был.
Я думал, что выбор отсутствовал к, но он просто переместился. Выберите добавляет связь сначала, затем вместо того, чтобы выбрать OpenVPN (как, я делал), прокрутите вниз дальше и выберите, последний выбор «импортируют спасенный vpn...»
нашел ответ здесь - http://torguard.net/knowledgebase.php?action=displayarticle&id=53
xmodmap
удерживается от использования и препятствуется. это все еще работает в средах X11, но не будет работать в Уэйленде и другие замены X11. использование основанных на XKB решений вместо этого высоко поощряется.
– quixotic
29 March 2017 в 11:35
Я создал сценарий здесь для автоматизации выбирающего пароля & zip-файлы от нескольких vpn сайтов такой как vpnbook.com , извлекая ca
, cert
, и key
данные из ovpn файлов, и обновляя opvn файлы так сертификаты должны просто импортировать для Вас. Это могло легко быть изменено для использования с другими поставщиками.