<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>网络 on Thinking</title>
    <link>https://varkai.com/categories/%E7%BD%91%E7%BB%9C/</link>
    <description>Recent content in 网络 on Thinking</description>
    <generator>Hugo</generator>
    <language>zh</language>
    <copyright>2026</copyright>
    <lastBuildDate>Mon, 01 Jul 2024 22:00:00 +0800</lastBuildDate>
    <atom:link href="https://varkai.com/categories/%E7%BD%91%E7%BB%9C/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>使用 WireGuard 组网实现内网穿透</title>
      <link>https://varkai.com/posts/53d88863/</link>
      <pubDate>Mon, 01 Jul 2024 22:00:00 +0800</pubDate>
      <guid>https://varkai.com/posts/53d88863/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;p&gt;最近有个需求，就是希望在公司或者外面的时候能够访问到家里提供的网络服务，例如：文件共享、照片存储等。但是我家里的网络没有提供公网地址，在外面是无法直接访问的，几经搜寻之后，发现可以使用 WireGurad 组件虚拟专用局域网实现内网的穿透，从而实现在外面访问家里的内网服务。&lt;/p&gt;
&lt;p&gt;本文将介绍如何在 Debian 12 上安装和配置 WireGuard，它将充当中转服务器。还将展示如何在 Linux、Windows 和 macOS 上将 WireGuard 配置为客户端。客户端的流量将通过 Debian 12 服务器进行路由。&lt;/p&gt;
&lt;p&gt;通过 WireGuard 组建虚拟专用网络，可用于防止中间人攻击、匿名上网、绕过受地理限制的内容或允许在家工作的同事安全地连接到公司网络。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;wireguard-是什么&#34;&gt;WireGuard 是什么&lt;/h2&gt;
&lt;p&gt;下面是 WireGuard 官网的介绍：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;WireGuard 是一种极其简单但快速且现代的 VPN，它利用了最先进的加密技术。它的目标是比 IPsec 更快、更简单、更精简和更有用，同时避免令人头疼的问题。其旨在提供比 OpenVPN 更高的性能。WireGuard 被设计为在嵌入式接口和超级计算机等上运行的通用 VPN，适用于许多不同的环境。虽然最初仅支持 Linux，但现在可以跨平台（Windows、macOS、BSD、iOS、Android）广泛部署。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;通过 WireGuard 可以将广域网上的主机连接起来，形成一个局域网。只需要有一台具有固定公网 IP 的服务器，就可以将其作为我们搭建的局域网的中心节点，让其他的主机（不论是否有公网IP，不论是否在NAT内），都通过这个中心节点和彼此相连。由此就构建了一个中心辐射型的局域网，实现了内网穿透等功能。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;前提条件&#34;&gt;前提条件&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;公网服务器：&lt;/strong&gt; 一台具有公网 IP 地址的 Linux 服务器，我这里采用的是 Debian 12 系统，这台服务器充当中转站，负责将外部请求转发到相应的内部网络。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;内网服务器：&lt;/strong&gt; 在家庭内网中，也需要准备一台 Linux 服务器做内部局域网的地址转发。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&#34;网络拓扑&#34;&gt;网络拓扑&lt;/h2&gt;
&lt;figure class=&#34;align-center &#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://varkai.com/images/53d88863/1.png#center&#34;/&gt; 
&lt;/figure&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Peer1&lt;/strong&gt; - 公网服务器（OS：Debian 12）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Peer2&lt;/strong&gt; - 家庭内网服务器 （OS：Debian12）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Peer3&lt;/strong&gt; - 需要访问家庭网络的外部客户端（OS：任意 WireGuard 支持的平台，有关 WireGuard 所有受支持平台的安装说明，请访问 &lt;a href=&#34;https://wireguard.com/install/&#34;&gt;https://wireguard.com/install/&lt;/a&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;wireguard-组网配置&#34;&gt;WireGuard 组网配置&lt;/h2&gt;
&lt;h3 id=&#34;配置-peer1-中继服务器&#34;&gt;配置 Peer1 中继服务器&lt;/h3&gt;
&lt;h4 id=&#34;安装-wireguard&#34;&gt;安装 WireGuard&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt install wireguard
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id=&#34;配置-wireguard&#34;&gt;配置 WireGuard&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;生成服务端密钥对&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;执行以下命令后，将在 &lt;code&gt;/etc/wireguard&lt;/code&gt; 目录下生成私钥文件 &lt;code&gt;privatekey&lt;/code&gt; 和公钥文件 &lt;code&gt;publickey&lt;/code&gt; ：&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用 SOCKS5 代理加速 GitHub 克隆</title>
      <link>https://varkai.com/posts/749d0bab/</link>
      <pubDate>Wed, 10 Jun 2020 22:18:09 +0800</pubDate>
      <guid>https://varkai.com/posts/749d0bab/</guid>
      <description>&lt;p&gt;因为众所周知的原因，国内从 GitHub 上克隆代码是非常非常的慢的，只能利用梯子曲线救国了，但是就算梯子打开全局系统代理，对 &lt;code&gt;git clone&lt;/code&gt; 也是没有用的，经过一番搜寻和实践，终于找到利用梯子加速的方法：&lt;/p&gt;
&lt;p&gt;只要在 &lt;code&gt;~/.ssh&lt;/code&gt; 目录下新建一个 &lt;code&gt;config&lt;/code&gt; 文件，并写入以下内容：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 这里的 -a none 是 NO-AUTH 模式&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 详情参见 https://bitbucket.org/gotoh/connect/wiki/Home 中的 More detail 一节&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 将 SOCKS5 代理地址替换成自己的地址&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ProxyCommand connect -S 127.0.0.1:7890 -a none %h %p
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Host github.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  User git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Port &lt;span class=&#34;m&#34;&gt;22&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Hostname github.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;# 这里是 ssh 的私钥地址，注意修改路径为你的路径&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  IdentityFile &lt;span class=&#34;s2&#34;&gt;&amp;#34;C:\Users\username\.ssh\id_rsa&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  TCPKeepAlive yes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Host ssh.github.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  User git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Port &lt;span class=&#34;m&#34;&gt;443&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Hostname ssh.github.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;# 这里是 ssh 的私钥地址，注意修改路径为你的路径&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  IdentityFile &lt;span class=&#34;s2&#34;&gt;&amp;#34;C:\Users\username\.ssh\id_rsa&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  TCPKeepAlive yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;到这里就可以打开你的梯子，享受 GitHub 克隆时飞一般的感觉！&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
