я спросил ранее как настроить 2 туннеля SSH с помощью промежуточного сервера для запуска удаленного рабочего стола через них, и мне удалось заставить его работать. Теперь я пытаюсь сделать то же самое, используя те же машины, но в обратном порядке. Вот установка:
Я использую Putty на ноутбуке для создания обратного туннеля от него к серверу Linux: R60666 localhost:3389
.
Я использую Putty на ПК для создания обычного туннеля от него к серверу Linux: L60666 localhost:60666
.
Я подключаюсь к серверу Linux по SSH и запускаю telnet localhost 60666, и, похоже, он дает ожидаемый результат, как описано в советах по отладке, которые я получил. Вот.
Пытаюсь подключить удаленный рабочий стол с ПК к ноутбуку: localhost:60666
. Он запрашивает мое имя пользователя и пароль, я нажимаю ОК, и он блокирует мой текущий сеанс на ноутбуке (поэтому я вижу экран приветствия на ноутбуке, а не на моем рабочем столе), он показывает сообщение «Добро пожаловать» на экране удаленного рабочего стола, а затем он просто становится черным. Он не отключается, не выдает никаких ошибок, и я не могу выполнять какие-либо действия на экране удаленного рабочего стола. Я попробовал ту же настройку с ноутбуком Windows XP, и у меня те же симптомы. Я также пытался использовать порты, отличные от 60666, но ничего не изменилось. Кто-нибудь знает, что я делаю не так?
Обновить: Как указал @jwinders, я не могу запустить telnet PC 3389
с сервера Linux напрямую. Поскольку в брандмауэре Windows есть правило, разрешающее все подключения на порт 3389, я понятия не имею, что его блокирует. К счастью, я могу создать SSH-туннель от Linux-машины к ПК. ssh 3389:localhost:3389 'domain\user'@PC
.
Я сам сегодня столкнулся с тем же черным экраном + проблема с отключением, используя шпатлевку в качестве моего клиента. Я нашел решение в конце концов.
Я перешел с замазки на Bitvise Tunnelier, и настроить S2C
соединение со следующими настройками:
listen if:0.0.0.0
listen port:13389
destination host:localhost
dest port:3389
По случайности, я использую на своем сервере ssh-сервер bitvise, так что это может быть удачная комбинация для двух продуктов одного и того же производителя. Было бы здорово, если бы это решило проблемы для других.
Для справки, я никак не связан с этими парнями.
Я не вижу ничего плохого в ваших SSH-туннелях. Подключение к localhost: 60666 на ПК должно закончиться на localhost: 3389 на ноутбуке. И тот факт, что вы получаете экран входа в систему, подтверждает эту оценку.
Если немного погуглить на пустом экране, я перейду к этой статье базы знаний Microsoft: http://support.microsoft.com/kb/555840. В нем говорится, что пустой экран может быть вызван возможным несоответствием размера MTU:
Верность, что сервер, клиент и сетевое оборудование используют размер «MTU».
Учитывая изрядное количество сетевых переходов, брандмауэры и все, что у вас есть, фрагментация пакетов весьма вероятна :) Большинство компьютеров с Windows по умолчанию используют MTU 1300, в то время как большинство компьютеров с Linux имеют значение 1500 (максимально допустимое значение для LAN, не считая больших кадров. ). Вы можете попробовать уменьшить их, чтобы уменьшить фрагментацию.
Смотрите также:
Если вы запускаете сеанс ssh в учетной записи пользователя (с помощью такой программы, как putty.exe), когда вы пытаетесь войти в систему через rdp, это нарушает это соединение, вызывая разрыв сеанса rdp. Что вам нужно сделать, так это запустить туннель ssh как службу, которая не будет прервана.
Разве VPN не было бы более подходящим? OpenVPN очень просто настроить. Вот образец конфигурации и несколько ссылок, которые помогут вам в процессе создания сертификата.
Просто настройте посредника в качестве хоста, и гости смогут подключиться и по-прежнему общаться друг с другом.
apt-get install openvpn
mkdir /etc/openvpn/easy-rsa
mkdir -p /etc/openvpn/ccd/client_server
touch /etc/openvpn/ipp.txt
cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
source ./vars
./clean-all
./build-ca
./build-key-server server
./build-dh
cd /etc/openvpn/easy-rsa/keys
openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt -certfile ca.crt
Затем создайте новый файл /etc/openvpn/client_server.conf
и введите в него следующее, изменив SERVER_IP_ADDRESS
по мере необходимости
local SERVER_IP_ADDRESS
port 8443
proto udp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
pkcs12 /etc/openvpn/easy-rsa/keys/server.p12
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
ifconfig-pool-persist /etc/openvpn/ipp.txt
server 192.168.100.0 255.255.255.0
client-config-dir /etc/openvpn/ccd/client_server
ccd-exclusive
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
reneg-sec 0
client-to-client
Затем создайте ключ для каждого пользователя, который будет подключаться, и создайте файл конфигурации в каталоге ccd.
./build-key-pkcs12 user1@domain.com
echo "ifconfig-push 192.168.100.2 255.255.255.0" > /etc/openvpn/ccd/client_server/user1@domain.com
IP-адрес ДОЛЖЕН подходить для подсети / 30 (см. http://www.subnet-calculator.com/cidr.php), поскольку для каждого соединения доступно только 2 адреса (сервер и клиент). Итак, ваш следующий доступный IP-адрес клиента будет 192.168.100.6 и так далее.
Теперь у вас есть статические IP-адреса для каждого подключающегося пользователя.
Тогда поставьте the user1@domain.com.p12
файл конечному пользователю и используйте следующий файл конфигурации
client
dev tun
proto udp
remote SERVER_IP_ADDRESS 8443
pkcs12 user1@domain.com.p12
resolv-retry infinite
nobind
ns-cert-type server
comp-lzo
verb 3
reneg-sec 0
я думаю, ты можешь делать все конфиг со своего ноутбука
настроить подключение шпатлевки к Linux-серверу на вашем ноутбуке. затем в 'connection'> 'SSH'> 'tunnels' введите 60666 в поле 'source port' и убедитесь, что выбран переключатель Local. в поле "пункт назначения" введите win7-box-name-or-ip: 3389.
сохраните все это, и это должно позволить вам открыть сеанс шпатлевки в linux-box, который автоматически создает туннель, перенаправляющий трафик на localhost (ваш ноутбук): 60666 на win7: 3389
если вы делаете это в командной строке, это должно быть что-то вроде
ssh -L60666:win7:3389 linux-box
Я обнаружил, что до тех пор, пока все пользователи не будут полностью отключены от машины, после ввода учетных данных я получу пустой экран. Итак, убедитесь, что вы всегда выходите из системы.