One Paragraph of project description goes here
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
IP="127.0.0.1" | |
PORT="8877" | |
SHARED_SECRET="shared secret" | |
OPENSSL="/usr/local/opt/libressl/bin/openssl" | |
OPENSSL_CMD="$OPENSSL enc -a -A -aes-256-gcm" | |
while IFS= read -r MSG; do | |
echo "$MSG" | $OPENSSL_CMD -e -k "$SHARED_SECRET" | |
echo |
1. Set up streaming server: | |
/interface wireless sniffer set streaming-server=X.X.X.X | |
/interface wireless sniffer set streaming-enabled=yes | |
/interface wireless sniffer set multiple-channels=yes | |
2. Set up scan list or specific channel(s) (frequencies in MHz): | |
/interface wireless set scan-list=default | |
3. Start up the sniffer: | |
/interface wireless sniffer sniff interface=wlan1 |
sudo apt-get install python-pip
or wget https://bootstrap.pypa.io/get-pip.py && sudo python get-pip.py
sudo pip install powerline-status
git clone https://github.com/powerline/fonts.git && cd fonts && sh ./install.sh
set rtp+=/usr/local/lib/python2.7/dist-packages/powerline/bindings/vim/
> " Always show statusline
由于路由管控系统的建立,实时动态黑洞路由已成为最有效的封锁手段,TCP连接重置和DNS污染成为次要手段,利用漏洞的穿墙方法已不再具有普遍意义。对此应对方法是多样化协议的VPN来抵抗识别。这里介绍一种太简单、有时很朴素的“穷人VPN”。
朴素VPN只需要一次内核配置(Linux内核),即可永久稳定运行,不需要任何用户态守护进程。所有流量转换和加密全部由内核完成,原生性能,开销几乎没有。静态配置,避免动态握手和参数协商产生指纹特征导致被识别。并且支持NAT,移动的内网用户可以使用此方法。支持广泛,基于L2TPv3标准,Linux内核3.2+都有支持,其他操作系统原则上也能支持。但有两个局限:需要root权限;一个隧道只支持一个用户。
朴素VPN利用UDP封装的静态L2TP隧道实现VPN,内核XFRM实现静态IPsec。实际上IP-in-IP隧道即可实现VPN,但是这种协议无法穿越NAT,因此必须利用UDP封装。内核3.18将支持Foo-over-UDP,在UDP里面直接封装IP,与静态的L2TP-over-UDP很类似。
#!/bin/sh | |
# Remove a risky plug-in. | |
rm -rf "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" | |
# Remove symlink provided by the plug-in. | |
rm -f "/Library/LaunchAgents/com.oracle.java.Java-Updater.plist" | |
rm -f "/Library/LaunchDaemons/com.oracle.java.Helper-Tool.plist" | |
rm -f "/Library/PreferencePanes/JavaControlPanel.prefPane" |
function ltrim(s) { sub(/^[ \t\r\n]+/, "", s); return s } | |
function rtrim(s) { sub(/[ \t\r\n]+$/, "", s); return s } | |
function trim(s) { return rtrim(ltrim(s)); } | |
BEGIN { | |
# whatever | |
} | |
{ | |
# whatever | |
} | |
END { |