Принятие Вас действительно проверяло, что 'кошка/proc/sys/net/ipv4/ip_forward' возвращается '1', как это должно...
Я также посмотрел бы на попытку:
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > $i; done
В системе нет такого средства - потому что такая логика действительно принадлежит демону. Однако, если вы не можете изменить данный демон, вы можете обойти его, создав простую единицу измерения, которая проверит существование файла и создаст соответствующую переменную среды, а также вместо добавления «EnvironureFile =» к вашей единице измерения. Также добавьте зависимость, чтобы убедиться, что модуль всегда выполняется после модуля, который создает переменные среды.
-121--125323- Hmm, выглядит так, будто bash
по-прежнему не соответствует обозначению префикса, таким образом,
$ < /etc/passwd while read line; do echo $line; done
bash: syntax error near unexpected token `do'
в то время как zsh
допускает это перенаправление до цикла во время
.
Почему это решение с помощью ProxyCommand
не работает для пересылки X11? Я думаю, что вы можете напрямую связаться с компьютером мамы с помощью пересылки X11, используя следующую конфигурацию.
Host mum
ProxyCommand ssh -q -W localhost:1993 login@vps0
ForwardX11 yes
Если вы понимаете, что происходит в пересылке X11, вы поймете, что это не так просто, как описано в ответе от @yaegashi. Переадресация X11 создает еще один слой под ssh, и его нельзя соединить в цепочку, как обычные потоки данных терминала. Но вы можете сделать это, используя переадресацию портов:
Основываясь на этой записи в блоге, которая делает это как жесткое кодирование в сценарии оболочки. Я пытался сделать то же самое, используя ssh_config
, но безуспешно. Вам просто нужно добавить сложность обратного туннеля в оригинальный скрипт
sshx () {
# create the tunnel from vps0 to your host
sudo ssh -Nn vps0 -L 3991:vps0:1993 &
sleep 1s
PID=$!
# connect to localhost on forwrded port
ssh localhost -XYC -p3991
sudo kill $PID
}
Надеюсь, это сработает для вас