Ошибка на уровне 8 все время!
Я забыл разрешить обратное прохождение трафика через мое туннельное устройство.
Решение
#Set default policy of chain
iptables -P FORWARD DROP
#allow traffic to route from VPN subnet to specific host in subnet
iptables -A FORWARD -i tun0 -s {VPN subnet} -d {host in server subnet} -j ACCEPT
#allow traffic from host in server subnet back to VPN subnet
iptables -A FORWARD -o tun0 -s {host in server subnet} -d {VPN subnet}
Меня вдохновил вот этот пост:
С помощью set -o histignorespace
командные строки, начинающиеся с символа SPC, не вставляются в историю (, хотя вы всегда можете вспомнить команду, которая была введена непосредственно перед ).
Так что, если вы сделаете это:
set -o histignorespace
alias c=' printf "\e[H\e[3J"'
И введите командную строку, первая команда которой c
, тогда эта командная строка не будет добавлена в историю.
Другим подходом может быть переопределение виджета accept-line
таким образом, чтобы он очищал экран и буфер редактирования, когда он содержит толькоc
:
accept-line() case $BUFFER in
(c) printf '\e[H\e[3J'; BUFFER=; zle redisplay;;
(*) zle.accept-line
esac
zle -N accept-line
Обратите внимание, что это будет работать, только если вы введете c
и все, а не c; something-else
, например. Это также произойдет, если вы нажмете Enter в командной строке PS2, как в :
for i do
c
В bash HISTIGNORE='c' doesn't store a command line of a single
c to the memory list of commands. The similarly named
HISTORY _IGNORE in zsh is used to avoid sending the command to the history **file**, which is something different. A
HIST _NO _STORE `также существует в zsh, но, похоже, не работает с псевдонимами.
Таким образом, кажется, что нет никакого решения, чтобы избежать псевдонима c
в истории.
Однако то, что вы делаете, очистка текущего окна(clear
)и удаление прокрутки(printf "\e[3J"
)также может быть выполнено с помощью другой управляющей последовательности ANSI:
ESC c # Full Reset (RIS), VT100.
Итак, а
printf '\ec'
должно быть достаточно.
Определение сочетания клавиш для этого должно быть простым и позволит избежать сохранения какой-либо команды в истории.
Method1:
Just Put one blank space before entering any command it wont be recorded in history
Method2:
set +o history (After this No command will be recorded in history)
set -o history(After this again command will be recorded in history)