Я закончил тем, что собрался с iptables в соответствии с Linux выполнить это.
Поскольку, передача IP должна быть включена:
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
И установленный следующие правила:
iptables -F -t nat
# flush the NAT Table.
iptables -t nat -P INPUT DROP
# set the input chain on the NAT table to DROP by default.
# This way any traffic not allowed by defining a source address gets dropped.
# If you don't provide a -s address below it will allow all hosts from anywhere
# to reach the inside address via the outside ip.
iptables -t nat -A PREROUTING -s 10.0.0.1 -d 10.0.0.2 \
-j DNAT --destination-address 192.168.1.3
# define the source and destination of the traffic allowed through.
# Change the dest address to our inside host.
iptable -t nat -A INPUT -s 192.168.0.0/24 -J ALLOW
# Drop all traffic on sourcing from inside subnet.
# This won't apply to traffic that matches the rule above
# as the source address will change in the next rule.
iptables -t nat -A POSTROUTING -d 192.168.1.3 \
-j SNAT --source-address 192.168.1.4
# here is the insert magic. Change the source address of any traffic destined
# for our inside host to our vip or owned inside address.
# This way the traffic is routed back to us at the FW.
zsh
одна из нескольких оболочек (другое быть tcsh
(which
порожденный как a csh
сценарий для csh
пользователи, которые также имели его ограничение, tcsh
сделанный этим встроенное как улучшение)), где which
делает что-то разумное, так как это - встроенная оболочка, но так или иначе Вы или Ваша ОС (через некоторых rc
файл), повредил его путем замены его вызовом к системе which
команда, которая не может сделать ничего разумного надежно, так как это не имеет доступа к интернам оболочки так, не может знать, как та оболочка интерпретирует название команды.
В zsh, всем из which
, type
, whence
и where
встроенные команды, которые все используются для обнаружения о том, каковы команды, но с различными выводами. Они - все там по исторической причине, можно получить все их поведения с различными флагами к whence
команда.
Можно получить детали того, что каждый делает путем выполнения:
info -f zsh --index-search=which
Или введите info zsh
, затем поднимите индекс с i
, и введите встроенное имя (завершение доступно).
И избегайте использования /usr/bin/which
. Нет никакой оболочки в наше время где это which
необходим. Как Timothy говорит, используйте встроенное, что Ваша оболочка предусматривает это. Большинство оболочек POSIX будет иметь type
команда, и можно использовать command -v
только получить путь команды (хотя оба type
и command -v
являются дополнительными в POSIX (но не Unix, и больше в LSB), они доступны в большинстве, если не все подобные Границе оболочки Вы, вероятно, будете когда-либо сталкиваться).
(BTW, это похоже /usr/bin
появляется дважды в Вашем $PATH
, Вы могли добавить a typeset -U path
к Вашему ~/.zshrc
)