@ibrahim частично прав, но явно неполный.
Изhttps://serverfault.com/questions/247623/iptables-redirect-local-connections-to-remote-system-portследующие работы
iptables -t nat -A OUTPUT -m addrtype --src-type LOCAL --dst-type LOCAL -p tcp --dport 10000 -j DNAT --to-destination 216.58.193.164
iptables -t nat -A POSTROUTING -m addrtype --src-type LOCAL --dst-type UNICAST -j MASQUERADE
sysctl -w net.ipv4.conf.all.route_localnet=1
Тогда я смогу бежать:
curl 216.58.193.164:10000
и получить правильный результат.
Также важно отметить, что при запуске в контейнере вам нужно запустить контейнер с--privileged
Фактическое приложение PuTTY представляет собой эмулятор терминала, оно не передает файлы как таковые. Но он поставляется с командами передачи файлов psftp
и pscp
.
К сожалению, ни psftp
, ни pscp
не позволяют установить права доступа к файлу , пока файл передается. Параметр -p
для pscp
сохранит временные метки файлов, но не разрешения. С помощью psftp
команды передачи файлов put
и mput
не имеют возможности указать удаленные разрешения, но есть отдельная команда chmod
, которую вы можете использовать для установки разрешений файла после завершения передачи..См. главу 6.2.14 документации PuTTY для получения информации о команде chmod
команды psftp
.
Если у вас есть что-то, что будет автоматически обрабатывать файл сразу после его передачи, обратите внимание, что вы можете сначала передать файл, используя psftp
либо:
и после завершения передачи установите разрешения с помощью chmod
и, наконец, используйте команду mv
, чтобы либо переместить файл в каталог, который используется автоматизацией, либо переименовать файл в его фактическое, ожидаемое имя.
(В любой файловой системе в стиле unix -, совместимой с POSIX -, любая операция по перемещению/переименованию файла в пределах одной файловой системы должна быть атомарной операцией , т. е. другие процессы также увидят операцию с файлом. как «еще не сделано» или «полностью закончено», никогда никоим образом не «в процессе». Здесь это свойство используется для того, чтобы автоматизация не увидела ожидаемый файл до тех пор, пока он не будет полностью передан и не будут установлены разрешения на доступ.)
Эта процедура также поможет гарантировать, что автоматизация никогда не поймает файл, который все еще находится в процессе передачи или остался незавершенным из-за сбоя сетевого соединения в середине -передачи.
Например, вы можете создать скрипт, подобный этому:(e.g.filetransfer.scr
)
cd /some/directory
mkdir incomplete_xfer
cd incomplete_xfer
put file.txt
chmod a+rw file.txt
mv file.txt..
cd..
rmdir incomplete_xfer
, а затем запустите его с:
psftp remoteuser@remotehost -b filetransfer.scr
Или, если вы знаете, что удаленный конец ожидает *.xml
файлы и не будет реагировать на файлы с любым другим суффиксом, вы можете сделать это и так:(альтернативаfiletransfer.scr
)
cd /some/directory
put file.xml file_tmp_incomplete_xfer
chmod a+rw file_tmp_incomplete_xfer
mv file_tmp_incomplete_xfer file.xml