Linux предоставляет эфемерный порт, который уже используется и связывается с любым интерфейсом "::" службой NFS

Вам нужно экранировать символы, которые не должны интерпретироваться вашей локальной оболочкой, а именно "`" и "$ "

Вместо:

ssh User@Server " line=`last -F | grep -vE '^(svc_qual|s594998a|reboot|s823850a|s825722a|s559857a|s603256a|root|s823656a|s230281a|s638181a|s835786a)' | head -1 `;login=`echo $line | awk '{print $1}'`dm;user=`getent passwd $login` ;echo $line ; echo $user  "

Делать:

ssh User@Server " line=\`last -F | grep -vE '^(svc_qual|s594998a|reboot|s823850a|s825722a|s559857a|s603256a|root|s823656a|s230281a|s638181a|s835786a)' | head -1 \`;login=\`echo \$line | awk '{print $1}'\`dm;user=\`getent passwd \$login\` ;echo \$line ; echo \$user  "

Вы также можете заключить в одинарные кавычки всю команду ssh. Затем вам нужно только заменить одинарные кавычки команд awkи grepна двойные кавычки :

.
ssh User@Server ' line=`last -F | grep -vE "^(svc_qual|s594998a|reboot|s823850a|s825722a|s559857a|s603256a|root|s823656a|s230281a|s638181a|s835786a)" | head -1 `;login=`echo $line | awk "{print $1}"`dm;user=`getent passwd $login` ;echo $line ; echo $user  '
0
21.08.2019, 20:14
1 ответ

В целом то, что вы испытываете , может быть нормальным при использовании IPv6.

В вашем случае «любой адрес» привязан к IPv6, а адрес «localhost» привязан к IPv4. Это совершенно нормально, если приложение, привязанное к «любому адресу» IPv6, установило параметр сокета IPV6_V6ONLY.

В Linux также существует общесистемное -значение по умолчанию для этой опции, которое можно просмотреть и установить в /proc/sys/net/ipv6/bindv6onlyи значением по умолчанию является 0, что позволяет IPv4 и IPv6 совместно использовать пространство номеров портов TCP/UDP..

Также обратите внимание, что тот факт, что ваш сокет 127.0.0.1:34797 LISTENпомечен tcp6, не имеет отношения к этой цели, поскольку он считается адресом IPv4, даже если он поддерживается сетевым стеком IPv6. Это тоже стандартное -совместимое поведение .

Результатом в вашем случае является то, что TCP-подключения к 127.0.0.1:34797будут доставляться вашему приложению java, а подключения к тому же порту, но к любому из IPv6-адресов вашей машины, будут доставляться на сервер блокировки NFS.

Что касается того, почему именно разработчики NFS выбрали именно это 1 Я не знаю, но это не относится только к NFS :см., например, демон OpenSSH, который связывает IPv4 и IPv6. адреса отдельно (по умолчанию оба «любые адреса», IPv4 0.0.0.0и IPv6::).

Кроме того, некоторые операционные системы даже не поддерживают параметр IPV6_V6ONLY(. они не позволяют установить его ), и единственное поведение, которое вы получаете в этих системах, — это полное разделение пространства номеров портов между IPv4 и IPv6, поэтому приложения должны привязывать один и тот же порт дважды, если они хотят поддерживать оба IPv4 и IPv6.

1.Я не исследовал полностью, но здесьявляются , возможно, соответствующие фрагменты кода

0
28.01.2020, 03:20

Теги

Похожие вопросы