Site updated: 2023-09-09 23:09:09
This commit is contained in:
1 parent
2792046524
commit
6dce1a8725
166 files changed
+187
-187
No files matched your search
@@ -21,11 +21,11 @@
|
||||
<id>https://hitoli.com/2023/09/09/squid-stunnel-%E7%A7%91%E5%AD%A6%E4%B8%8A%E7%BD%91/</id>
|
||||
<title>squid+stunnel 科学上网</title>
|
||||
<link rel="alternate" href="https://hitoli.com/2023/09/09/squid-stunnel-%E7%A7%91%E5%AD%A6%E4%B8%8A%E7%BD%91/"/>
|
||||
<content type="html"><h6 id="前言"><a class="anchor" href="#前言">#</a> 前言</h6>
|
||||
<p>科学上网的方法有多重,有很多第三方提供的免费方案,这些方案优缺点暂时不予讨论。实际工作生活中还是会有需要自己搭建的情况,这次介绍的是使用 squid+stunnel 方案进行搭建。</p>
|
||||
<h6 id="准备"><a class="anchor" href="#准备">#</a> 准备</h6>
|
||||
<content type="html"><h4 id="前言"><a class="anchor" href="#前言">#</a> 前言</h4>
|
||||
<p>科学上网的方法有多种,有很多第三方提供的免费方案,这些方案优缺点暂时不予讨论。实际工作生活中还是会有需要自己搭建的情况,这次介绍的是使用 squid+stunnel 方案进行搭建。</p>
|
||||
<h4 id="准备"><a class="anchor" href="#准备">#</a> 准备</h4>
|
||||
<p>一台可以访问外网的服务器,如香港的云主机并安装 Ubuntu 系统。</p>
|
||||
<h6 id="squid部分"><a class="anchor" href="#squid部分">#</a> squid 部分</h6>
|
||||
<h5 id="squid部分"><a class="anchor" href="#squid部分">#</a> squid 部分</h5>
|
||||
<ul>
|
||||
<li>1、安装</li>
|
||||
</ul>
|
||||
@@ -44,7 +44,7 @@
|
||||
<figure class="highlight yaml"><figcaption data-lang="YAML"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token comment">#dns 服务器地址</span></pre></td></tr><tr><td data-num="2"></td><td><pre>dns_nameservers 8.8.8.8 8.8.4.4</pre></td></tr><tr><td data-num="3"></td><td><pre>dns_v4_first on</pre></td></tr><tr><td data-num="4"></td><td><pre><span class="token comment"># 监听端口</span></pre></td></tr><tr><td data-num="5"></td><td><pre>http_port 3128</pre></td></tr><tr><td data-num="6"></td><td><pre><span class="token comment"># 定义 squid 密码文件与 ncsa_auth 文件位置</span></pre></td></tr><tr><td data-num="7"></td><td><pre>auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/squid_user.txt</pre></td></tr><tr><td data-num="8"></td><td><pre><span class="token comment"># 认证进程的数量</span></pre></td></tr><tr><td data-num="9"></td><td><pre>auth_param basic children 15</pre></td></tr><tr><td data-num="10"></td><td><pre><span class="token comment"># 认证对话框显示提示信息</span></pre></td></tr><tr><td data-num="11"></td><td><pre>auth_param basic realm Squid proxy<span class="token punctuation">-</span>caching web server</pre></td></tr><tr><td data-num="12"></td><td><pre><span class="token comment"># 认证有效期</span></pre></td></tr><tr><td data-num="13"></td><td><pre>auth_param basic credentialsttl 24 hours</pre></td></tr><tr><td data-num="14"></td><td><pre><span class="token comment"># 是否区分用户名大小,off 为不区分</span></pre></td></tr><tr><td data-num="15"></td><td><pre>auth_param basic casesensitive off</pre></td></tr><tr><td data-num="16"></td><td><pre><span class="token comment"># 对定义的 squid_user 文件内的用户开启认证访问</span></pre></td></tr><tr><td data-num="17"></td><td><pre>acl 用户名 proxy_auth REQUIRED</pre></td></tr><tr><td data-num="18"></td><td><pre><span class="token comment"># 允许 squid_user 文件内用户进行代理</span></pre></td></tr><tr><td data-num="19"></td><td><pre>http_access allow 用户名</pre></td></tr><tr><td data-num="20"></td><td><pre><span class="token comment"># 顺序匹配,最后添加拒绝所有未允许的规则。不添加会发现,未匹配到的规则会被放行</span></pre></td></tr><tr><td data-num="21"></td><td><pre>http_access deny all</pre></td></tr><tr><td data-num="22"></td><td><pre><span class="token comment"># 缓存设置</span></pre></td></tr><tr><td data-num="23"></td><td><pre>cache_dir ufs /var/spool/squid 100 16 256 read<span class="token punctuation">-</span>only</pre></td></tr><tr><td data-num="24"></td><td><pre>cache_mem 0 MB</pre></td></tr><tr><td data-num="25"></td><td><pre>coredump_dir /var/spool/squid</pre></td></tr><tr><td data-num="26"></td><td><pre><span class="token comment"># 配置高匿,不允许设置任何多余头信息,保持原请求 header。</span></pre></td></tr><tr><td data-num="27"></td><td><pre>header_access Via deny all</pre></td></tr><tr><td data-num="28"></td><td><pre>header_access X<span class="token punctuation">-</span>Forwarded<span cLine truncated
|
||||
<p>至次已经可以通过填写安装 squid 的服务器 ip 加端口 3128 加用户名密码进行代理访问了(通过访问<span class="blue"><span class="exturl" data-url="aHR0cHM6Ly93d3cuaXAuY24v"> https://www.ip.cn/</span></span> 查看 ip 就会发现自己的出口 ip 已经变成了 squid 服务器的 ip 了)。但是要想科学上网还必须对代理的数据进行加密,否则访问外网还是会被我国的长城防火墙阻挡,所以还需要安装 stunnel 来实现此目的。</p>
|
||||
</div>
|
||||
<h6 id="stunnel服务端部分"><a class="anchor" href="#stunnel服务端部分">#</a> stunnel 服务端部分</h6>
|
||||
<h5 id="stunnel服务端部分"><a class="anchor" href="#stunnel服务端部分">#</a> stunnel 服务端部分</h5>
|
||||
<ul>
|
||||
<li>1、安装(和 squid 装在一起)</li>
|
||||
</ul>
|
||||
@@ -59,7 +59,7 @@
|
||||
<p>4、修改 stunnel 配置 (/etc/stunnle/stunnle.conf)</p>
|
||||
</li>
|
||||
</ul>
|
||||
<figure class="highlight yaml"><figcaption data-lang="YAML"></figcaption><table><tr><td data-num="1"></td><td><pre>; 设置stunnel的pid文件路径</pre></td></tr><tr><td data-num="2"></td><td><pre>pid = /etc/stunnel/stunnel.pid</pre></td></tr><tr><td data-num="3"></td><td><pre>; 设置stunnel工作的用户(组)</pre></td></tr><tr><td data-num="4"></td><td><pre>setuid = root</pre></td></tr><tr><td data-num="5"></td><td><pre>setgid = root</pre></td></tr><tr><td data-num="6"></td><td><pre></pre></td></tr><tr><td data-num="7"></td><td><pre>; 开启日志等级:emerg (0)<span class="token punctuation">,</span> alert (1)<span class="token punctuation">,</span> crit (2)<span class="token punctuation">,</span> err (3)<span class="token punctuation">,</span> warning (4)<span class="token punctuation">,</span> notice (5)<span class="token punctuation">,</span> info (6)<span class="token punctuation">,</span> or debug (7)</pre></td></tr><tr><td data-num="8"></td><td><pre>debug = 7</pre></td></tr><tr><td data-num="9"></td><td><pre>; 日志文件路径</pre></td></tr><tr><td data-num="10"></td><td><pre>output = /etc/stunnel/stunnel.log</pre></td></tr><tr><td data-num="11"></td><td><pre></pre></td></tr><tr><td data-num="12"></td><td><pre>; 证书文件</pre></td></tr><tr><td data-num="13"></td><td><pre>cert = /etc/stunnel/stunnel.pem</pre></td></tr><tr><td data-num="14"></td><td><pre>; 私钥文件</pre></td></tr><tr><td data-num="15"></td><td><pre>key = /etc/stunnel/stunnel.pem</pre></td></tr><tr><td data-num="16"></td><td><pre></pre></td></tr><tr><td data-num="17"></td><td><pre>; 自定义服务名squid<span class="token punctuation">-</span>proxy</pre></td></tr><tr><td data-num="18"></td><td><pre><span class="token punctuation">[</span>squid<span class="token punctuation">-</span>proxy<span class="token punctuation">]</span></pre></td></tr><tr><td data-num="19"></td><td><pre>; 服务监听的端口,client要连接这个端口与server通信</pre></td></tr><tr><td data-num="20"></td><td><pre>accept = 1234(自定义)</pre></td></tr><tr><td data-num="21"></td><td><pre>; 服务要连接的端口,连接到squid的3128端口,将数据发给squid</pre></td></tr><tr><td data-num="22"></td><td><pre>connect = 3128</pre></td></tr></table></figure><h6 id="stunnel客户端部分"><a class="anchor" href="#stunnel客户端部分">#</a> stunnel 客户端部分</h6>
|
||||
<figure class="highlight yaml"><figcaption data-lang="YAML"></figcaption><table><tr><td data-num="1"></td><td><pre>; 设置stunnel的pid文件路径</pre></td></tr><tr><td data-num="2"></td><td><pre>pid = /etc/stunnel/stunnel.pid</pre></td></tr><tr><td data-num="3"></td><td><pre>; 设置stunnel工作的用户(组)</pre></td></tr><tr><td data-num="4"></td><td><pre>setuid = root</pre></td></tr><tr><td data-num="5"></td><td><pre>setgid = root</pre></td></tr><tr><td data-num="6"></td><td><pre></pre></td></tr><tr><td data-num="7"></td><td><pre>; 开启日志等级:emerg (0)<span class="token punctuation">,</span> alert (1)<span class="token punctuation">,</span> crit (2)<span class="token punctuation">,</span> err (3)<span class="token punctuation">,</span> warning (4)<span class="token punctuation">,</span> notice (5)<span class="token punctuation">,</span> info (6)<span class="token punctuation">,</span> or debug (7)</pre></td></tr><tr><td data-num="8"></td><td><pre>debug = 7</pre></td></tr><tr><td data-num="9"></td><td><pre>; 日志文件路径</pre></td></tr><tr><td data-num="10"></td><td><pre>output = /etc/stunnel/stunnel.log</pre></td></tr><tr><td data-num="11"></td><td><pre></pre></td></tr><tr><td data-num="12"></td><td><pre>; 证书文件</pre></td></tr><tr><td data-num="13"></td><td><pre>cert = /etc/stunnel/stunnel.pem</pre></td></tr><tr><td data-num="14"></td><td><pre>; 私钥文件</pre></td></tr><tr><td data-num="15"></td><td><pre>key = /etc/stunnel/stunnel.pem</pre></td></tr><tr><td data-num="16"></td><td><pre></pre></td></tr><tr><td data-num="17"></td><td><pre>; 自定义服务名squid<span class="token punctuation">-</span>proxy</pre></td></tr><tr><td data-num="18"></td><td><pre><span class="token punctuation">[</span>squid<span class="token punctuation">-</span>proxy<span class="token punctuation">]</span></pre></td></tr><tr><td data-num="19"></td><td><pre>; 服务监听的端口,client要连接这个端口与server通信</pre></td></tr><tr><td data-num="20"></td><td><pre>accept = 1234(自定义)</pre></td></tr><tr><td data-num="21"></td><td><pre>; 服务要连接的端口,连接到squid的3128端口,将数据发给squid</pre></td></tr><tr><td data-num="22"></td><td><pre>connect = 3128</pre></td></tr></table></figure><h5 id="stunnel客户端部分"><a class="anchor" href="#stunnel客户端部分">#</a> stunnel 客户端部分</h5>
|
||||
<div class="note info">
|
||||
<p>可以安装在要代理的机器上,在需要代理的情况下再开启(代理地址填 127.0.0.1 加客户端监听端口)。也可以安装在国内的服务器上一直保持连接(代理信息填国内服务器 ip 加客户端监听端口)。本示例客户端为 windows 系统</p>
|
||||
</div>
|
||||
@@ -82,7 +82,7 @@
|
||||
<id>https://hitoli.com/2023/09/09/Windows-11%E5%8F%B3%E9%94%AE%E8%8F%9C%E5%8D%95%E6%81%A2%E5%A4%8D%E8%80%81%E7%89%88%E6%9C%AC/</id>
|
||||
<title>Windows 11右键菜单恢复老版本</title>
|
||||
<link rel="alternate" href="https://hitoli.com/2023/09/09/Windows-11%E5%8F%B3%E9%94%AE%E8%8F%9C%E5%8D%95%E6%81%A2%E5%A4%8D%E8%80%81%E7%89%88%E6%9C%AC/"/>
|
||||
<content type="html"><h6 id="恢复方法"><a class="anchor" href="#恢复方法">#</a> 恢复方法</h6>
|
||||
<content type="html"><h4 id="恢复方法"><a class="anchor" href="#恢复方法">#</a> 恢复方法</h4>
|
||||
<p>1、按【Win+X】</p>
|
||||
<p>2、选择【终端管理员】</p>
|
||||
<p>3、输入以下命令并回车:<br />
|
||||
@@ -607,8 +607,8 @@ Lombok supports: OpenJDK javac, ECJ</p>
|
||||
<category term="服务" scheme="https://hitoli.com/categories/Linux/%E6%9C%8D%E5%8A%A1/" />
|
||||
<category term="Nginx" scheme="https://hitoli.com/categories/Linux/%E6%9C%8D%E5%8A%A1/Nginx/" />
|
||||
<category term="Nginx" scheme="https://hitoli.com/tags/Nginx/" />
|
||||
<category term="动态域名解析" scheme="https://hitoli.com/tags/%E5%8A%A8%E6%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/" />
|
||||
<category term="Tengine" scheme="https://hitoli.com/tags/Tengine/" />
|
||||
<category term="动态域名解析" scheme="https://hitoli.com/tags/%E5%8A%A8%E6%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/" />
|
||||
<updated>2022-11-30T08:35:00.000Z</updated>
|
||||
</entry>
|
||||
<entry>
|
||||
@@ -622,8 +622,8 @@ Lombok supports: OpenJDK javac, ECJ</p>
|
||||
<category term="服务" scheme="https://hitoli.com/categories/Linux/%E6%9C%8D%E5%8A%A1/" />
|
||||
<category term="Nginx" scheme="https://hitoli.com/categories/Linux/%E6%9C%8D%E5%8A%A1/Nginx/" />
|
||||
<category term="Nginx" scheme="https://hitoli.com/tags/Nginx/" />
|
||||
<category term="Tengine" scheme="https://hitoli.com/tags/Tengine/" />
|
||||
<category term="stream" scheme="https://hitoli.com/tags/stream/" />
|
||||
<category term="Tengine" scheme="https://hitoli.com/tags/Tengine/" />
|
||||
<updated>2022-11-30T08:09:00.000Z</updated>
|
||||
</entry>
|
||||
<entry>
|
||||
|
||||
Reference in new issue
Block a user