Если вы хотите перенаправить трафик на локальный сервер, используйте PREROUTING вместо цепочки OUTPUT, например
iptables -t nat -I PREROUTING -p tcp -m tcp -d 55.55.55.55/32 -j DNAT --на -пункт назначения 127.0.0.1
Я пытался воспроизвести вашу проблему, и самое близкое, что я мог повторить, это:
# file: ~/bin/janstest
echo $argv
# file: ~/bin/janstest2
function janstest
~/bin/janstest $argv
end
janstest It works!
и права доступа к файлам как:
stew@stewbian ~> ls -l ~/bin/jans*
-rwxr-xr-x /home/stew/bin/janstest*
-rwxr-xr-x /home/stew/bin/janstest2*
Когда я запускаю его, я получаю аналогичную ошибку:
stew@stewbian ~> ~/bin/janstest2
Failed to execute process '/home/stew/bin/janstest2'. Reason:
exec: Exec format error
The file '/home/stew/bin/janstest2' is marked as an executable but could not be run by the operating system.
stew@stewbian ~ [125]>
Решение состояло в том, чтобы добавить #!/usr/bin/fish
к сценарию.
stew@stewbian ~> cat ~/bin/janstest2
#!/usr/bin/fish
function janstest
~/bin/janstest $argv
end
janstest It works
stew@stewbian ~> ~/bin/janstest2
It works