可搜索,可注册,可登录,致敬逗比大佬!尽在救援版逗比根据地 dbgjd.com
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程

一个 反代无需证书 适用于DNS/Hosts的小工具 —— SNI Proxy代理 安装教程

逗比 Toyo 998℃ 0评论
本文最后更新于 2018年7月19日 12:10 可能会因为没有更新而失效。如已失效或需要修正,请留言!

现在有很多可以 科学上网的DNS和Hosts,那么他们是如何实现的呢?一些人可能觉得是,找到谷歌等网站没有被墙的IP,但是实际上经过几年的封杀,谷歌等网站的可用IP现在非常有限,通过这种方式效率低而且麻烦。

所以那些可以 科学上网的DNS和hosts,都是使用的自建或者公共SNI代理。

原理简单说明

SNI详细的我也不懂,假如你有一台 海外的服务器 IP为: 233.233.233.233 ,上面搭建了 SNI Proxy,并且配置正常并启动。

然后你本地Hosts文件在最后添加一条:

233.233.233.233 www.google.com 

保存Hosts文件并打开浏览器访问 https://www.google.com ,然后你就会发现你可以进入 https://www.google.com 网站了。

原理解析:

Hosts设置 233.233.233.233 www.google.com 后,浏览器访问 https://www.google.com  =>> 浏览器搜索Hosts文件发现设置的解析IP(233.233.233.233) =>> 浏览器访问 SNI Proxy(233.233.233.233) =>> SNI Proxy收到信息然后去访问 https://www.google.com 并获取网站数据,然后把网站数据原封不动的返回给你 =>> 浏览器收到 SNI Proxy返回的 网站数据并显示出来 =>> 你看到了 https://www.google.com 网页

简单的来说,SNI Proxy 会把请求的网站比如 https://www.google.com 获取并原封不动的返回请求者,不需要对证书进行解密和加密,所以不需要配置证书。

SNI Proxy 可以简单的实现这样的 反向代理功能。

安装环境

本教程只适用于 Ubuntu 14.04 + 以上版本的系统。

Debian 7 / 8 的安装方法请看这个:Debian 编译安装 SNI Proxy 反向代理教程(可用于Hosts/DNS服务器)

安装步骤

apt-get install python-software-properties software-properties-common -y add-apt-repository ppa:dlundquist/sniproxy 

第二行代码执行后提示大概如下:

[email protected]:~# add-apt-repository ppa:dlundquist/sniproxy  More info: https://launchpad.net/~dlundquist/+archive/ubuntu/sniproxy Press [ENTER] to continue or ctrl-c to cancel adding it  gpg: keyring `/tmp/tmpnr3gi1cx/secring.gpg' created gpg: keyring `/tmp/tmpnr3gi1cx/pubring.gpg' created gpg: requesting key ED122FA0 from hkp server keyserver.ubuntu.com gpg: /tmp/tmpnr3gi1cx/trustdb.gpg: trustdb created gpg: key ED122FA0: public key "Launchpad PPA for Dustin Lundquist" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) OK 

继续安装

apt-get update && apt-get install sniproxy -y 

配置说明

SNI Proxy的默认配置文件:/etc/sniproxy.conf

vim的具体使用教程:Linux中VIM编辑器的真 · 简单使用教程

我们可以使用 VIM 等编辑器添加修改,也可以直接用 echo写入文件。

VIM操作简单说明(可选):

echo "" > /etc/sniproxy.conf # 清空配置文件 vi /etc/sniproxy.conf # 打开配置文件 

然后按 I 键 进入编辑模式,复制下面的内容到配置文件中(手动把 echo -e “和 ” > /etc/sniproxy.conf 去掉),然后按 Esc 键 推出编辑模式,然后输入 :wq 保存并退出vi。

下面是 echo 方式直接写入配置文件。

泛反向代理:

泛反向代理,指的是所有请求 SNI Proxy 的域名都会反向代理。

echo -e "user daemon pidfile /var/run/sniproxy.pid  listen 443 {  proto tls  table https_hosts  access_log {   filename /var/log/sniproxy/https_access.log   priority notice  } } table https_hosts {  .* *:443 }" > /etc/sniproxy.conf 

自定义反向代理:

自定义反向代理,指的是自己指定域名,只有通过这些域名请求 SNI Proxy 的才会反向代理。

比如只设置了 (.*.|)google.com$ * ,那么你只能通过 www.google.com、google.com 和其他以 google.com 为主的二级 三级域名 访问SNI Proxy并请求反向代理。其他没有设置的域名都会忽略。

要反向代理什么域名就在 table https_hosts {} 中添加规则,例如 我要反向代理 任何以 google.com 为主的二级 三级域名 ,那么就写:

(.*.|)google.com$ * 

这样只要是以 google.com 为主的域名都会被反向代理,比如 www.google.com news.google.com mail.google.com 都会反向代理。

echo -e "user daemon pidfile /var/run/sniproxy.pid  listen 443 {  proto tls  table https_hosts  access_log {   filename /var/log/sniproxy/https_access.log   priority notice  } } table https_hosts {  .* *:443 }  table https_hosts {  (.*.|)google.com$ *  (.*.|)google.com.hk$ *  (.*.|)googlemail.com$ *  (.*.|)googlecode.com$ *  (.*.|)blogspot.com$ *  (.*.|)gmail.com$ *  (.*.|)youtube.com$ * }" > /etc/sniproxy.conf 

使用说明

使用命令

service sniproxy start # 如果运行无反应并没有启动,那么请直接使用 sniproxy 来启动试试 # 启动SNI Proxy  service sniproxy stop # 停止SNI Proxy  service sniproxy restart # 重启SNI Proxy  service sniproxy status # 查看状态 

启动SNI Proxy后,查看一下 网络连接端口监听情况:

netstat -lntp 

当出现大概如下所示的信息时,代表正常启动并监听端口443,注意最后的sniproxy。

[email protected]:~# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp6 0 0 :::443  :::*  LISTEN 11673/sniproxy 

如果没有发现 sniproxy 的监听端口信息,那么看一下是否有其他的 软件/服务 占用了 443 端口,如果有的话请关闭后再尝试启动 SNI Proxy。

如果没有异常情况,那么我们就可以使用 SNI Proxy 代理了。

运行优化说明

建议在运行 SNIProxy前,执行一下这个命令,作用是提高系统的文件符同时打开数量,对于TCP连接过多的时候系统默认的 1024 就会成为速度瓶颈。

ulimit -n 51200 

这个命令只有临时有效,重启后失效,如果想要永久有效,请执行:

echo "* soft nofile 51200 * hard nofile 51200" >> /etc/security/limits.conf 

然后最后再执行一下 ulimit -n 51200 即可。

Hosts

找到你电脑的Hosts文件,并打开(注意Hosts可能是隐藏文件,需要设置显示出来,还有win10修改Hosts文件需要管理员权限)。

Windows xp / 7 / 10 系统Hosts位置:C:/windows/system32/drivers/etc/hosts

在最后一行添加你要反向代理的网站,比如 www.google.com

233.233.233.233 www.google.com 

其他想要反向代理的域名按这个格式添加(233.233.233.233是你的SNI Proxy服务器IP),当然Hosts设置比较麻烦,而且比如 youtube.com 看视频的话要设置很多 Hosts域名,很麻烦,所以如果只是访问谷歌,那么可以使用这个Hosts方法。

DNS

如果你有一台国内服务器的话,你可以搭建一个DNS服务器,然后把谷歌等域名的解析IP都指向你的SNI Proxy服务器,然后当你使用这个DNS的时候,就会解析到SNI Proxy服务器并反向代理去访问谷歌等网站。

但是搭建DNS服务器,必须有国内服务器,否则会被墙DNS污染,所以没有国内服务器的可以看看下面这几个可以科学上网的DNS。

Xsico DNS

官方网站 – 科学上网

Public Dns:115.159.157.26

Scholar Dns:115.159.158.38

Mogu DNS

官方网站 – 科学上网+广告过滤

北方推荐:122.114.245.45

南方推荐:115.159.96.69

Pure DNS

官方网站 – 科学上网+广告过滤

北方推荐:123.207.137.88

南方推荐:115.159.220.214

GoGo

GoGo新版本也是支持 SNI Proxy 代理的,所以可以添加自己的 SNI Proxy 代理来使用。

GoGo添加SNI Proxy代理很简单,首先进入管理面板-代理列表http://127.0.0.1:9092/proxies

然后点击右上角的 添加SNI代理 按钮,然后出现下图,按下图格式添加,比如你的SNI Proxy代理服务器IP为 233.233.233.233 ,那么就填写 233.233.233.233:443 ,然后点击下面的  确认添加 按钮就行了。

一个 反代无需证书 适用于DNS/Hosts的小工具 —— SNI Proxy代理 安装教程

添加完毕后,你可以在 代理列表的筛选中,选择 SNI代理 – 启用 ,然后点击 查看 按钮,筛选出刚才SNI代理。

然后找到我们刚才添加的 SNI代理,并设置 优先(否则可能不会使用这个代理)。

这就算添加完毕了,GoGo客户端使用教程:一个免费且快速的HTTP/SOCKS5代理软件 —— GoGotunnel

一个 反代无需证书 适用于DNS/Hosts的小工具 —— SNI Proxy代理 安装教程

dowsDNS

打开配置文件 config.json 找到 "sni_proxy_ip":"219.76.4.3" 参数,把IP改为你自己搭建的 SNI Proxy IP即可。

阅后请多多推广本文: 一个 反代无需证书 适用于DNS/Hosts的小工具 —— SNI Proxy代理 安装教程
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

转载请注明:逗比根据地 » 一个 反代无需证书 适用于DNS/Hosts的小工具 —— SNI Proxy代理 安装教程

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址