这个是逗比根据地的备份镜像站(非官方)。牢记域名: [doubibackup.com]。搜索:标签云
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程
广告

Debian 编译安装 SNI Proxy 反向代理教程(可用于Hosts/DNS服务器)

网络资源 Toyo 37评论
广告
本文最后更新于 2018年9月20日 20:05 可能会因为没有更新而失效。如已失效或需要修正,请留言!

我以前曾经写过一个SNI Proxy代理的安装教程,但是当时只写了Ubuntu的,Debian作为我的本命系统,没有教程怎么行,所以我就去Github看了看研究了一下。

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


目前 SNI Proxy 代理效果不如以前,防火墙针对性更强,如非必须,不推荐使用!

系统要求

本教程只适用于 Debian7 / 8 系统,其他系统都不适用。

安装SNI Proxy依赖需要 最少150MB大小的空间,所以请确保你的系统硬盘空闲空间有 300MB。

简单说明

SNI Proxy 简单的来说是一个 反向代理软件,可以把你的请求原封不动的发送给指定网站,然后再把指定网站返回的数据原封不动的返回给你,目前网上可以 科学上网的Hosts和DNS,都是通过把 谷歌等域名指向 SNI Proxy代理的IP来实现“直连”访问谷歌的,所以在某种程度上,SNI Proxy承担一个流量数据搬运工的作用。

因为 Hosts和DNS科学上网,都必须使用 https 来访问,所以过程都是加密的,而SNI Proxy只会原封不动的把流量转发过去,所以不会去解密(也不能),也就不需要担心安全问题了。

SNI Proxy Github项目:https://github.com/dlundquist/sniproxy

安装步骤

安装依赖

首先为了确保依赖安装正常、完整,我们需要更换系统 软件包源为最新的稳定源 jessie (本步骤必做,否则很容易出错)。

默认下面的代码是 美国的镜像源,可以更换下面代码 us.sources.list 中的 us ,具体可以看这里

rm -rf /etc/apt/sources.list && wget -N --no-check-certificate -O "/etc/apt/sources.list" https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/sources/us.sources.list

注意:这个更换 镜像源的步骤,Debian 8、Debian 9 不需要执行,可以直接跳过,Debian 7 必须执行!

然后我们更新软件包列表,并开始安装依赖

apt-get update
apt-get install autotools-dev cdbs debhelper dh-autoreconf dpkg-dev gettext libev-dev libpcre3-dev libudns-dev pkg-config fakeroot devscripts build-essential unzip -y
# 安装依赖会很大,可能会有 100-300MB大小,所以一开始的镜像源一定要选近的,否则会很慢。
# 在安装过程中可能会提示如下内容,选择 Yes 即可。
======================== Configuring libc6:amd64 ========================
 x .......                                                              x 
 x .......                                                              x 
 x Restart services during package upgrades without asking?             x  
 x                                                                      x  
 x             《Yes》                            《No》                 x  
 x                                                                      x  
=========================================================================

安装SNI Proxy

mkdir sniproxy && cd sniproxy
# 新建一个 SNI Proxy文件夹并进入

wget -N --no-check-certificate https://github.com/dlundquist/sniproxy/archive/master.zip
# 下载 SNI Proxy 最新软件包

unzip master.zip && cd sniproxy-master
# 解压 SNI Proxy 软件包并进入解压后的文件夹

./autogen.sh && dpkg-buildpackage
# 开始构建 deb 包

sniproxy_deb=$(ls ..|grep "sniproxy_.*.deb") && echo ${sniproxy_deb}
# 获取构建后的 deb 包的文件名,正常情况下会返回一个类似于 sniproxy_0.X.X_amd64.deb 这样的文件名

[[ ! -z ${sniproxy_deb} ]] && dpkg -i ../${sniproxy_deb}
# 判断获取的文件名是否为空,如果不为空就 安装 deb 包。

最后安装完毕,我们可以用 sniproxy -V 来查看是否安装成功,正常情况下会返回版本号。

安装完毕之后,还需要配置一下配置文件,才能使用,具体看这个教程:一个 反代无需证书 适用于DNS/Hosts的小工具 —— SNI Proxy代理 安装教程

DNS服务搭建教程:

  1. 『原创』快速自建DNS服务器以 科学上网+屏蔽广告 —— dowsDNS 一键脚本
  2. Linux 使用 dowsDNS 快速自建DNS服务器以 科学上网+屏蔽广告
  3. Linux 自建DNS 并使用SNI Proxy实现科学上网 —— DNSmasq配置教程

使用说明

启动:/etc/init.d/sniproxy start(如果运行无反应并没有启动,那么请直接使用 sniproxy 来启动试试)

停止:/etc/init.d/sniproxy stop

重启:/etc/init.d/sniproxy restart

查看状态:/etc/init.d/sniproxy status

配置文件:/etc/sniproxy.conf

通过 dpkg -S sniproxy 命令可以查询 SNI Proxy 的所有安装文件。

运行优化说明

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

ulimit -n 51200

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

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

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

添加开机启动

update-rc.d -f sniproxy defaults

取消开机启动

update-rc.d -f sniproxy remove

卸载SNI Proxy

apt-get remove --purge sniproxy

其他系统的SNI Proxy教程,我会看情况写的。

转载请超链接注明:逗比根据地 » Debian 编译安装 SNI Proxy 反向代理教程(可用于Hosts/DNS服务器)
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

赞 (30)
发表我的评论
取消评论
表情

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(37)个小伙伴在吐槽
  1. 貌似nginx可以反向代理tcp和UDP协议,大佬可以写个教程
    cold2018-10-13 03:40 回复
  2. 貌似sni proxy不支持转发tcp协议,请问有类似的软件但是可以转发tcp的吗?谢谢
    cold2018-10-13 03:36 回复
  3. 你好toyo,我输入了sniproxy依旧没反应,然后查询状态的时候依旧显示 [FAIL] sniproxy is not running ... failed! 该如何解决?
    超级逗比2017-11-07 21:53 回复
    • /etc/init.d/sniproxy start 试试。
      Toyo2017-11-08 10:49 回复
  4. 貌似sniproxy转发的you2be要出问题,现在已经放弃了用它来正向代理了,还有downdns以及dnsmasq我搭了也出问题最后用bind才搭成功的。 :lol:
    氪金好友2017-10-17 21:58 回复
  5. 为啥我搭建的成功了。is runing。国服dowsdns也改成ture了。DNS写的sni ip咋还是打不开谷歌。iptable也转发了端口。 感觉一切都正常。
    h弹弹堂2017-09-18 00:21 回复
  6. 启动失败。添加配置之前可以启动添加之后失败了。我是直接复制配置文件的。
    h弹弹堂2017-09-17 20:16 回复
  7. debian 7.8 添加开机启动,update-rc.d -f sniproxy defaults,命令无效,update-rc.d: using dependency based boot sequencing。Google了,然后用insserv sniproxy,无错误提示,但是开机没有启动,请大佬帮忙一下
    不死系2017-08-23 09:46 回复
  8. 老大 安装成功了测试正常但是不知道 怎么在路由器 或者电脑上使用
    司马碧龙2017-08-22 12:23 回复
  9. 能搭建成功, 但用一会网页就打不开, 等几分钟又恢复了. 不稳定, vps状态一直是正常的, 一般是什么原因? 谢谢
    Yooping2017-07-06 09:05 回复
    • 不确定是否是墙的干扰。
      Toyo2017-07-06 17:27 回复
  10. 你好,启动成功 tcp6 0 0 :::443 :::* LISTEN 10141/sniproxy 代理不起作用。网站无法访问,通过GOGO添加代理时,显示正在添加SNI代理...,请问是哪里问题。感激谢谢!
    ceoceo2017-06-23 09:09 回复
    • 补充一点,可以p通google等加入了配置文件及hosts的域名,可网站就是打不开。
      ceoceo2017-06-23 14:36 回复
  11. www.google.com.hk 使用了不受支持的协议。 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 这个真不知道怎么解决了...另一篇文章里面评论区有人说升级openssl,我升级了也无效...
    Xin2017-06-21 23:21 回复
  12. [email protected]:~# sniproxy -V sniproxy 0.5.0 查询后返回的版本号。 查看状态:service sniproxy status 查看状态提示: [email protected]:~# service sniproxy status [FAIL] sniproxy is not running ... failed!
    HILO2017-05-14 11:00 回复
  13. 博主,按照你上面的教程运行好后,输入命令 查看状态:service sniproxy status 提示如下。 [FAIL] sniproxy is not running ... failed! 最后安装完毕,我们可以用 sniproxy -V 来查看是否安装成功,正常情况下会返回版本号。 已经正常返回版本号,我用的是Debian 7.8 64位的 请问下我该如何解决。
    HILO2017-05-14 10:51 回复
    • [FAIL] sniproxy is not running … failed!
      
      你使用的是查看sniproxy 运行状态的命令,他返回没有运行,没什么问题啊?你要问什么?没有启动,那就运行启动命令啊。
      service sniproxy start
      
      如果是启动失败,请检查配置文件是否错误,然后根据配置文件内指定的日志参数来查看是否输出了错误日志。
      Toyo2017-05-14 13:24 回复
      • 我运行命令启动了,可是什么反应都没有。在 查看状态 提示还是未启动。 启动:service sniproxy start 输入启动后,没任何反应。 然后在查询还是提示未启动。 service sniproxy status [FAIL] sniproxy is not running ... failed!
        HILO2017-05-15 13:12 回复
        • 文章已经更新,我特地开了一个 Vultr的Debian7服务器,完整了操作了一个过程,修复了一些文章中步骤瑕疵,同时发现 service sniproxy start 确实无法使用,直接使用 sniproxy 启动即可。
          Toyo2017-05-15 13:59 回复
          • 好的 感谢回复。
            HILO2017-05-15 14:15 回复
          • SNI已经搭建成功,但是我发现和(快速自建DNS服务器以 科学上网+屏蔽广告 —— dowsDNS 一键脚本)配合的时候 Google可以正常访问 其余均无法访问。不知博主可否提供个邮箱我把我的SNI IP 和账号密码发给您,您有空的时候能不能帮忙看看? [email protected]:~/sniproxy/sniproxy-master# service sniproxy status [ ok ] sniproxy is running. SNI检测结果是正常的。 如果直接用dowsDNS 一键脚本是可以正常使用的。
            HILO2017-05-15 15:34 回复
            • 很简单啊,你本地hosts文件里设置,加上SNI的IP为 1.1.1.1,那么
              1.1.1.1 www.youtube.com
              # 注意,上面这个Youtube示例只能用作进入网站,无法看视频
              
              照着上面那样写几个被墙的域名,然后浏览器 https访问域名看看是否可以进去,如果正常则代表SNI代理是配置正常的,如果不正常那则代表SNI代理配置有问题。
              还有你更换为自建DNS后,Ping一下那些被墙的域名看一看返回的IP是什么,是不是你设置的SNI代理IP?
              Toyo2017-05-15 16:12 回复
              • [email protected]:~# dig www.google.com ; <> DiG 9.8.4-rpz2+rl005.12-P1 <> www.google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15031 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.google.com. IN A ;; ANSWER SECTION: www.google.com. 65 IN A 216.58.200.36 ;; Query time: 1 msec ;; SERVER: 100.78.90.8#53(100.78.90.8) ;; WHEN: Mon May 15 16:26:57 2017 ;; MSG SIZE rcvd: 48 [email protected]:~# dig www.youtube.com ; <> DiG 9.8.4-rpz2+rl005.12-P1 <> www.youtube.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29134 ;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.youtube.com. IN A ;; ANSWER SECTION: www.youtube.com. 24065 IN CNAME youtube-ui.l.google.com. youtube-ui.l.google.com. 900 IN CNAME youtube-ui-china.l.google.com. youtube-ui-china.l.google.com. 180 IN A 74.125.203.138 youtube-ui-china.l.google.com. 180 IN A 74.125.203.139 youtube-ui-china.l.google.com. 180 IN A 74.125.203.100 youtube-ui-china.l.google.com. 180 IN A 74.125.203.102 youtube-ui-china.l.google.com. 180 IN A 74.125.203.113 youtube-ui-china.l.google.com. 180 IN A 74.125.203.101 ;; Query time: 4 msec ;; SERVER: 100.78.90.8#53(100.78.90.8) ;; WHEN: Mon May 15 16:29:21 2017 ;; MSG SIZE rcvd: 194 这样是不是意味着还没用 说明这个服务器已经被污染了?
                HILO2017-05-15 16:31 回复
                • 不清楚,你没有提供我要的信息,你给的信息看不出来。建议Telegram联系我,评论里交流太慢。
                  Toyo2017-05-15 18:58 回复
          • Vultr同样问题已经解决。
            h弹弹堂2017-09-17 20:36 回复
  14. 谷歌找不到centos搭建SIN的教程 :cry:
    Justin2017-05-12 13:35 回复
    • 有的,我参考这教程安装成功了。Centos安装SNIProxy——免证书代理HTTP(S) http://www.senra.me/install-sniproxy-for-centos/ 16年的教程依旧可以用,需要改一下部分命令 另外还可以参考 Centos 下安装 SNIProxy 实现 hosts 代理 | 技术拉近你我! http://coderschool.cn/2284.html 今年5.18发布的233
      MiniCongee2017-06-25 10:56 回复
  15. 问个小白问题,这个能和ssr服务端共存吗。。。
    qwe29682017-05-11 20:20 回复
    • 可以。
      Toyo2017-05-11 20:21 回复
      • 我在vultr上的Debian7里安装好以后无法启动,使用service sniproxy start没反应,也没有查到有端口占用,Toyo有没有想到什么解决方法呢 :grin:
        qwe29682017-05-11 20:34 回复
        • 什么反应都没有的话,那就难办了没线索也无法找到问题出在哪里。
          Toyo2017-05-11 23:55 回复
        • 尝试使用 sniproxy 来启动SNIProxy试试。
          Toyo2017-05-15 14:00 回复
  16. toyo打算写v2ray的教程么,go语音写的 :lol:
    kurokitomoko2017-05-08 08:37 回复
  17. 有错别字哦 构建
    南琴浪2017-05-03 20:39 回复
  18. 终于出debian的了 :lol:
    kurokitomoko2017-05-03 18:33 回复