Оператор обратной кавычки Perl вернет (в переменную результата $curl _)STDOUT команды, которую вы запускаете. STDERR из этой команды перенесет в вызывающую программу/терминал из ваш perl-скрипт --, возможно, на ваш экран, как если бы вы сами вызвали curl
.
Чтобы захватить STDERR, вы должны (как вы начали воображать, )отбросить STDOUT или смешать их.
Вот пример удаления STDOUT и перенаправления STDERR в STDOUT, чтобы он (вместо «обычного» STDOUT )захватывался переменной perl:
my $curl_result = `curl... 2>&1 1>/dev/null`;
В качестве альтернативы можно объединить два:
my $curl_result = `curl... 2>&1`;
Я опустил середину основной команды curl
, чтобы было понятно, какую часть я изменил. В первом примере STDERR изменяется так, чтобы он указывал на то место, где STDOUT в настоящее время указывает , а затем сообщает STDOUT, что он должен уйти. Во втором примере STDERR указывает на STDOUT, смешивая их.
Если вашей целью является доступ к графическому интерфейсу конфигурации маршрутизатора на том же маршрутизаторе, на котором вы используете ssh (dropbear ), тогда вам нужно не socks proxy
, а переадресация локального порта . ].
Настройте ssh-туннель на хосте Firefox (, предполагая, что ваш веб-интерфейс обслуживает порт 80):
ssh -L 3000:localhost:80 user@myrouter.mydomain.com
и укажите Firefox на http://localhost:3000
.
(Примечание для лучшего понимания:localhost
в приведенной выше команде относится к вашему маршрутизатору, т. е. сервер ssh перенаправляет на localhost:80
из своего локального контекста.)
Это открывает локальный порт 3000 и туннелирует его через установленное соединение ssh с маршрутизатором и подключает его к службе, работающей на порту 80 маршрутизатора.
РЕДАКТИРОВАТЬ :вы должны дополнительно убедиться, что dropbear работает с опцией -a
, чтобы разрешить переадресацию портов. (См. опции dropbear . )Этого можно добиться в веб-интерфейсе, как показано в этом ответе
ХТХ,
пингвин
Динамическая переадресация портов SSH настроена правильно. Для достижения этой цели маршрутизатор Asus имеет настройку, разрешающую переадресацию портов SSH, которая должна быть включена :
.ppenguin рекомендует :Для дополнительной безопасности рассмотрите возможность добавления/обновления authorized_keys
файла (, обычно в /root/.ssh/authorized_keys
), содержащего ваш открытый ключ. После проверки вы можете войти в систему без пароля (с помощью пары открытого и закрытого ключей ), отключить Allow Password Login
.