使用ICMP和DNS隧道代理绕过认证限制网络

这种方法适用于获取了局域网地址后,却要进行页面认证的网络,比如常见的免费 WiFi 连接后,需要手机短信认证,或微信认证。 这种情况下,通常是往外部网络的请求被网关限制了。 那么此时,可以通过ping命令,尝试ICMP协议是否可以通行。比如ping 1.2.4.8看是否存在回应,如果可行,那么就代表可以通过隧道代理的方式实现外网连接。 但如果ping不同,没关系,正所谓上帝关了门留了窗,既然内部的DHCP给客户端分配了IP,那么必然分配DNS服务,也就是说DNS的请求在网关处有极大可能是畅通无阻的,因此可以尝试能否解析域名来验证隧道代理的可行性,通常可以使用命令nslookup解析指定的服务地址来验证。比如nslookup baidu.com 223.5.5.5,尝试解析baidu.com的IP,并指定使用阿里云的公共DNS服务器,如果解析成功,那么就可以通过隧道代理的方式实现外网的连接。 其实我用这种方法已经好久了,自从2015年买了 Raspberry Pi 2 并安装了 SoftEtherVPN 后,就发现这个软件简直就是代理中的神器,集多种代理协议于一身还实现了多用户的认证与多样化管理。最最神奇的是,它可以支持ICMP和DNS的隧道代理。 后来在长期使用中,发现部分网络的 ICMP 协议会被禁用,但 DNS 协议却是没有任何阻碍,更关键的是,DNS 协议走53号端口,一些网络中的网关并不支持数据包结构的验证,即不是DNS协议格式的数据包结构也能过,所以只要将代理的端口设置为53号即可。并且由于 DNS 协议会同时使用 TCP 和 UDP 协议,网关不会同时阻拦这两种类型协议,故强烈推荐使用 Shadowsocks 或加强版的 ShadowsocksR ,这两个代理软件能指定数据包走 TCP 或 UDP,只需将服务端的代理端口设置为 … “使用ICMP和DNS隧道代理绕过认证限制网络”

Read More

Fedora24下MySQL开发环境搭建

当初oracle收购mysql,开源社区采用了mysql的分支MariaDB代替了mysql数据库,现在由开源社区维护,centos,fedora,red hat都采用了MariaDB,因此默认安装的是MariaDB,需要指定源才能装MySQL。 //采用官方的 sudo dnf install community-mysql-5.7.15-1.fc24.x86_64 community-mysql-devel-5.7.15-1.fc24.x86_64 community-mysql-libs-5.7.15-1.fc24.x86_64 community-mysql-server-5.7.15-1.fc24.x86_64 安装完毕开启mysql服务: service mysqld start 然后使用命令查看是否已安装mysql的相应库和包含: find /usr -name “*mysql*”

Read More

Fedora24下MongoDB3.2的C++开发环境搭建

//开发编译需要boost、bson(Binary JSON)、g++、stdc++ dnf install boost-1.60.0-7.fc24.x86_64 boost-thread-1.60.0-7.fc24.x86_64 boost-openmpi-devel-1.60.0-7.fc24.x86_64 //boost dnf install libbson-1.3.5-3.fc24.x86_64 //bson dnf install gcc-c++-x86_64-linux-gnu-6.1.1-2.fc24.x86_64 //g++ dnf install libstdc++-docs-6.2.1-2.fc24.x86_64 libstdc++-devel-6.2.1-2.fc24.x86_64 //stdc++ //安装mongoDB dnf install libmongo-client-0.1.8-4.fc24.x86_64 //db客户端 dnf install mongodb-server-3.2.8-2.fc24.x86_64 //db服务端 dnf install mongo-cxx-driver-devel-1.1.2-2.fc24.x86_64 //db的C++开发驱动 dnf … “Fedora24下MongoDB3.2的C++开发环境搭建”

Read More

ubuntu16.04 安装apache2报错 解决方案

从ubuntu 14.04 升级ubuntu16.04后,apache2无法启动,如下报错: Starting apache2 (via systemctl): apache2.serviceJob for apache2.service failed because the control process exited with error code. See “systemctl status apache2.service” and “journalctl -xe” for details. failed! 卸载apache2 再次重装仍报错: Job for apache2.service failed … “ubuntu16.04 安装apache2报错 解决方案”

Read More

Linux下 编译libcurl

官网下载libcurl 解压 tar -zxvf curl-7.51.0.tar.gz cd curl-7.51.0.tar.gz ./buildconf ./configure make sudo make install 在./configure –enable-pthreads后,会显示默认环境下安装后能使用的功能,若是满足需求就直接make和sudo make install。 如果缺少需要的功能,则先去安装相应的环境后再编译安装curl。 eg: 若要开启SSL support和zlib support:(Centos) yum install openssl-libs openssl-devel 若要支持https需安装libssh2:(Centos) yum install libssh2-devel 若要支持PSL 验证 Cookie 和证书的 Domain … “Linux下 编译libcurl”

Read More

编译libevent-2.1.6beta

从官网下载libevent 编译平台Debian(also Ubuntu) //解压 tar -zxvf libevent-release-2.1.6-beta.tar.gz cd libevent-release-2.1.6-beta 执行./autogen.sh时报错 ./autogen.sh: 11: ./autogen.sh: aclocal: not found //是因为缺少automake 安装即可 sudo apt-get install automake //再次执行报以下错误 configure.ac:137: error: possibly undefined macro: AC_PROG_LIBTOOL //是因为缺少libtool,安装即可 sudo apt-get install libtool

Read More

vmware下安装Fedora24Workstation

到官网下载iso镜像 打开vmware选择典型-Linux-Fedora64,分配cpu内存硬盘。cpu建议分配两个核,一个核玩图形界面会有点卡;内存也建议2G,硬盘大小看需求,后其扩展比bsd方便多了. 开启后按提示安装,安装过程中可以设置账户,语言等配置。root密码和新建普通用户密码太短需要按两次确定(Done)。 安装完毕后退出(Quit),然后重启即可。 进入系统不要更新VMware Tools,会发生内核错误。 打开terminal输入su切换root账户,用yum升级系统应用。 yum upgrade 配置ssh workstation默认没启用ssh systemctl enable sshd.service systemctl start sshd.service 然后查看是否成功开启 systemctl status sshd 装了freebsd还装fedora

Read More

FreeBSD官方vmdk镜像在VMware上配置记录

FreeBSD官方vmdk镜像在VMware上配置记录 首先在官方下载vmdk格式系统包,64位的地址FreeBSD-xx.x-RELEASE-amd64.vmdk.xz下载完毕后用7-zip解压得到vmdk包。 设置账户密码 启动freebsd,默认root账户登陆且无密码, 使用passwd设置密码。 添加普通用户adduser Uid (Leave empty for default) :默认按Enter Login group [xxxx]:默认按Enter Login class:默认按Enter Shell (sh csh tcsh zsh ksh bash nologin) [sh]:根据登陆方式选择。 Home directory [/home/xxxxx]:默认按Enter Use password-based authentication? [yes]:使用密码认证。默认按Enter Use an … “FreeBSD官方vmdk镜像在VMware上配置记录”

Read More

硬链接和软链接

硬链接不占用inode,只占用目录项。 软链接占用inode。 创建链接命令ln,硬链接只将对应的inode在目录总增加一个名字,并且将inode的引用计数器+1。 为了可以跨文件系统和对目录进行链接,创建了软链接这种方式。ln -s int main() { struct stat buf; stat(“file”, &buf); struct stat buf2; lstat(“file”, &buf2); // 如果lstat的参数所指文件不是链接文件 // 那么它的效果和stat一样 struct stat buf3; lstat(“file2”, &buf3) } 读取symlink内容使用readlink命令。 删除软链接不会删除软链接指向的文件。

Read More

QT-模态对话框与非模态对话框笔记

模态与非模态的定义: 模态对话框(Modal dialog box):只可在当前程序的当前对话框执行操作,不允许对当前程序的其他对话框执行操作。 非模态对话框(Modeless dialog box):打开当前程序的一个窗口后,仍能在当前程序的其他窗口执行操作。 在QT里创建对话框需包含头文件< QDialog>,创建非模态对话框可以用三种方法,常用的是在调用时new;第二种是提前声明其为类中成员函数;第三种是全局声明,这种很少用。 非模态对话框在调用时new,需注意空间的释放问题。 使用setAttribute属性事件接收Qt::WA_DeleteOnClose 事件,让QWidget在触发关闭事件时,自动delete。 setAttribute说明: void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on = true) 其返回值空,第二参为true时,接受第一参设置函数属性,false则清除事件属性。第二参不填则默认ture. WA_DeleteOnClose说明: Qt::WA_DeleteOnClose属于enum Qt::WidgetAttribute中的55。 其作用是接受关闭事件时,delete QWidget. //代码示例 QMenuBar *mBar = menuBar();//创建菜单栏 QMenu *pDlg = mBar->addMenu(“Menu”);//创建菜单 … “QT-模态对话框与非模态对话框笔记”

Read More