Настройка X11-forwarding через ssh, с помощью PuTTY и Xming

Вообще в Linux, а особенно на сервере под Linux вполне можно обходиться голой консолью, ибо все инструменты обычно в консольном варианте есть. Но иногда хочется запустить и графическое приложение, например программу разметки диска, а иногда без графики вообще не обойтись, если обрабатываешь видео или работаешь с виртуальными машинами. На наше счастье возможность удаленно работать с графическими программами есть. Называется это дело X11-Forwarding и существует оно аж в двух вариациях:
XDMCP, нечто вроде RDP в винде — когда мы подключаемся к оконному менеджеру Linux, вводим свой логин/пароль и работаем с удаленным рабочим столом.
— И просто возможность запуска отдельных приложений (GIMP, GParted и т.д.)

К первому я еще может, когда-нибудь вернусь, а пока будем настраивать второе.

Настройка X11-forwarding в ssh на стороне Linux

Будем считать, что ssh у нас уже настроен. Правим конфиг демона ssh /etc/ssh/sshd_config
Раскомментируем или дописываем следующие строки:
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

Перезапускаем демон или рестартируем сервер.
Если надо, открываем порты на файерволе:
Для переопределения дисплея:
iptables -A INPUT -s x.x.x.x/xx -p tcp --dport 6000 -j ACCEPT
iptables -A OUTPUT -s x.x.x.x/xx -p tcp --sport 6000 -j ACCEPT

Вместо x.x.x.x/xx подставить нужную подсеть

Настройка PuTTY

Щелкаем по значку в лотке, открываем Конфигурация и в появившемся окне выбираем в дереве слева Соединение -> SSH -> X11
Выставляем все значения как на картинке и запоминаем число после localhost: (оно понадобится виндовому X-серверу).

Настройка виндового X-сервера

Их, наверное с десяток всякоразных наберется, но я особо не экспериментировал, все побежали и я побежал, взял самый популярный Xming
1. Качаем с официального сайта или напрямую с SourceForge
2. Устанавливаем
3. Настраиваем, запускаем Пуск -> Все программы -> Xming ->XLaunch

Выбираем Multiple windows и устанавливаем Display number таким же, как было настроено в PuTTY:

Нажимаем Далее и выбираем Start no client, тогда Xming «поселится» в трее и будет ждать, пока мы с консоли PuTTY запустим какое-нибудь графическое приложение.


В следующем окне я оставил все также, поскольку Font Server не настраивал.

Хотя глюк со шрифтами у меня был, но как оказалось, его исправление особого шаманства не требует.

Если нажать Готово в следующем окне, Xming сядет в лоток и будет ждать, пока мы запустим что-нибудь графическое из консоли. Например
gparted &

символ & — чтоб программа запустилась в фоновом режиме и не занимала консоль.

Чтобы каждый раз не лезть в XLaunch, можно в свойства ярлыка Xming дописать нужные параметры "C:\Program Files\Xming\Xming.exe" :0 -clipboard -multiwindow

Глюк с размером шрифтов и борьба с ним.

По умолчанию Xming почему-то выставляет ОЧЕНЬ маленький размер шрифта меню и диалоговых окон


Борьба проста. Дописываем в окне Additional Parameters XLaunch’а в строку Additional parameters for Xming параметр -dpi 96 или его же в свойства ярлыка. Число в параметре выбираем под свои глаза и монитор

Вот что получилось:

Другие опции можно узнать из официального мануала

Источники не помню, но УМВР. И у друга тоже.

Скачать заметку в формате PDF

Отключение/включение сетевой карты с помощью DEVCON.EXE

Я тут Devcon упоминал, и вот для чего. Задача такая, склепать батник для включения/выключения сетевой карты. Решаем:

Что потребуется:

Рабочий Devcon.exe
Поиск ID сетевой карты
Для начала надо найти ID сетевой карты, для чего выводим список PnP-устройств в текстовый файл:
devcon.exe rescan
devcon find PCI* > PNP.log
Сетевая карта (даже встроенная) обычно висит на шине PCI.
В файле PNP.log будет что-то типа этого:

А вот и наша сетевая карта (подчеркнута красным)

Выдираем ее ID, с помощью которого и будем ей рулить.
Открываем файл на редактирование, ищем название и то, что начинается от первого слэша с конца, до первого с конца двоеточия и будет искомым идентификатором:
PCIVEN_10EC&DEV_8168&SUBSYS_83A31043&REV_03
Этот ID для команды включения/отключения можно и сократить, например до ID производителя+ID оборудования, поставив в нужном месте звездочку (*), например так:
PCIVEN_10EC&DEV_8168*
Но если вдруг у вас 2 одинаковые сетевые карты (на серверах бывает) — вырубятся обе.
Отключение устройства

Выполняется одной простой командой:
devcon disable <device_id>
где вместо <device_id> подставляем ранее найденный ID устройства. Т.е. в случае моей тестовой машины, команда выглядит как:
devcon disable "PCIVEN_10EC&DEV_8168&SUBSYS_83A31043&REV_03"
Включение устройства
Не менее простая команда:
devcon enable <device_id>
т.е. в моем случае:
devcon enable "PCIVEN_10EC&DEV_8168&SUBSYS_83A31043&REV_03"
ВАЖНО!
device_id необходимо взять в кавычки!!! Иначе командный интерпретатор примет (из-за наличия в ID амперсанда — т.е. символа &) одну команду за последовательность команд, и тогда выполнится первая disable PCIVEN_10EC, т.е. отключатся все PCI-устройства данного производителя, а остальные завершатся с ошибкой типа такой: "DEV_8168" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Готовые батники на pastebin

Включить сетевую карту
Отключить сетевую карту

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/332413.html
Прокомментировать заметку можно по ссылке выше.

DEVCON.EXE Консольный аналог Диспетчера устройств (для XP)

К XP, во всяком случае к XP Professional SP3 подходит Devcon от Windows Server 2003
Взять можно здесь:
Прямая ссылка
Ссылка на страничку на сайте Microsoft
Скачиваем cab-архив, оттуда извлекаем devcon.exe
На всякий случай переложил себе (мало ли MS с сайта уберут)
support.cab
devcon (zip)

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/331569.html
Прокомментировать заметку можно по ссылке выше.

Несколько конфигураций сетевого адаптера Windows.

Быстрый способ переключения настроек.

Бывает так, что нужно сохранить и переключать время от времени несколько конфигураций сетевого адаптера в Windows, например, вы ходите по разным организациям с ноутбуком, подключаетесь по кабелю (да-да, не везде есть Wi-Fi, от жадности или в целях безопасности). В одной организации выделение IP происходит автоматически, через DHCP, в другой — надо все вводить вручную, в третьей, тоже вручную, но IP другие. 8 и 10 вроде могут сохранять конфигурации для нескольких сетей, а вот 7 и XP такого не умеют. Вот способ сделать все штатно, через командную строку Windows, с помощью утилиты netsh
Пусть, для примера у нас будут 3 сети с разными настройками:
Для них мы создадим три командных (batch) файла. При соединении с конкретной сетью запускается соответствующий batch-файл.
Да, поскольку у меня на ноутбуке XP, то и команды будут именно для XP. В 7 и выше синтаксис команд netsh вроде немного отличается.
Внимание! Для корректной работы с сетевыми интерфейсами, имена которых содержат русские буквы, batch-файл должен быть сохранен в кодировке DOS (866)
Сеть 1. Все настройки получаются через DHCP


Самый простой случай. В batch-файле содержится единственная команда:
netsh interface ip set address "Подключение по локальной сети" dhcp
где:
interface ip - указание, что операция будет производиться с интерфейсом ip (v4).
set address — устанавливаем адреса
"Подключение по локальной сети" — имя подключения
dhcp — тип получаемого адреса, по DHCP
Сеть 2. Все настройки указываются вручную, все адреса статические.

Установка адресов:
netsh interface ip set address "Подключение по локальной сети" static X.X.X.X Y.Y.Y.Y Z.Z.Z.Z M
где (исключая упомянутое в предыдущем пункте):
static — тип получаемого адреса, статический
X.X.X.X — IP компьютера (точнее, его сетевого интерфейса)
Y.Y.Y.Y — маска подсети
Z.Z.Z.Z — адрес основного шлюза
M — Метрика шлюза. Если у вас всего 1 сетевая карта, то указываем 1:
Метрика — определяет оценочную метрику маршрута в целых числах (от 1 до 9999) и используется при выборе из нескольких маршрутов в таблице маршрутизации наиболее точно соответствующих адресу места назначения пересылаемого пакета. Выбирается маршрут с наименьшей метрикой. Метрика может отражать количество скачков, скорость передачи, надежность пути, его пропускную способность или административные настройки.
Т.е. в нашем случае команда выглядит так:
netsh interface ip set address "Подключение по локальной сети" static 192.168.1.11 255.255.255.0 192.168.1.1 1
Добавляем первичный DNS:
netsh interface ip set dns "Подключение по локальной сети" static 10.20.0.5
Добавляем вторичный DNS:
netsh interface ip add dns "Подключение по локальной сети" 10.20.0.4

Внимание!
Команда именно add а не set.Хотя командой add можно и первый добавить.
Сеть 3. Все адреса статические. Некоторые параметры не указаны.


Примечание:
Такую конфигурацию можно использовать для отключения компьютера от интернета, но сохранив доступ к локальной сети.
netsh interface ip set address "Подключение по локальной сети" static 192.168.0.6 255.255.255.0 none
Команда установки адресов отличается только словом none на месте адреса шлюза. Т.е. указывает, что шлюз не указан
Внимание! Всегда лучше явно указывать отсутствие шлюза. Почему? Да потому что, если до этого в настройках был указан IP шлюза, то без явного указания (словом none), того, что шлюз не нужен, netsh программа оставит этот параметр без изменений.
Удаляем DNS-адреса:
netsh interface ip delete dns "Подключение по локальной сети" all
(вместо all можно указать конкретный адрес, если нужно удалить только его).
Источники

1. Using Netsh (на буржуйском)
2. Netsh commands for Interface IP (на буржуйском)
3. Настройка нескольких шлюзов в сети

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/329789.html
Прокомментировать заметку можно по ссылке выше.