<?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>WireGuard on 小碼哥的博客</title>
    <link>https://lewang.dev/tags/wireguard/</link>
    <description>Recent content in WireGuard on 小碼哥的博客</description>
    <image>
      <title>小碼哥的博客</title>
      <url>https://lewang.dev/lewangdev-cover.png</url>
      <link>https://lewang.dev/lewangdev-cover.png</link>
    </image>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Mon, 04 Dec 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://lewang.dev/tags/wireguard/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>一次完美的逃离公有云操作：把挂载300G数据盘的阿里云主机迁移到本地</title>
      <link>https://lewang.dev/posts/2023-12-04-bails-out-of-the-public-cloud/</link>
      <pubDate>Mon, 04 Dec 2023 00:00:00 +0000</pubDate>
      
      <guid>https://lewang.dev/posts/2023-12-04-bails-out-of-the-public-cloud/</guid>
      <description>在主机还有 1 天到期之前，尝试下云就成功了，节省几千块。从阿里云下载的虚拟机文件在本地用 qemu 运行没有任何问题，因为备份的磁盘文件单个接近 200GB，我还担心网络问题以及操作复杂会比较耗时间，于是先把主机降到了最低配置准备再续一个月，没想到迁移过程很丝滑。这次迁移主机的系统盘和数据盘是通过下载从阿里云的磁盘快照构建镜像来恢复的，而不是通过备份数据的方式。
通过直接恢复虚拟机磁盘这种方式来迁移云主机，相较于通过 rsync 备份数据，要方便得多。
以下是我的操作过程。
阿里云导出主机镜像的文档写得还是不错的，生成和导出磁盘镜像我都是看阿里云文档来操作。第一步是打开阿里云控制台进入镜像页面，为自己的云主机创建一个镜像。我的这台主机每天都自动生成快照，并且在创建镜像之前，我手动也创建了一个永久保存的快照，我用这个永久快照来构建镜像的。
接下来点击「导出镜像」，阿里云后台会弹出提示窗口，根据提示配置好 oss Bucket，然后耐心等待，最后在会在 oss Bucket 看到两个文件，一个是系统盘，另外一个数据盘。
从 oss Bucket 下载文件到外网的流量是收费，我第一次直接用 http 链接下载，系统盘可以下载下来，但是数据盘下载失败了，浪费了不少的流量（钱），后来尝试用 阿里云的 ossutil 命令来下载，一次就成功了，把着两个文件下载到本地之后，接下来在本地使用 qemu 就可以把虚拟机跑起来
我从阿里云导出的 raw 格式的镜像， qemu 可以直接使用，如果打算用 virtualbox 来运行，也可以尝试用 qumu-img 转为 virtualbox 支持的磁盘格式。我这里直接解压系统盘和数据盘文件之后，执行一下命令来构建虚拟机：
# 使用系统盘创建虚拟机 virt-install \ --name aliyun-ci \ --osinfo centos7 \ --ram 8192 \ --vcpus 4 \ --network network=default \ --disk /var/lib/libvirt/images/aliyun-ci.raw \ --graphics vnc,listen=0.0.0.0 \ --noautoconsole --autostart \ --import # 挂载数据盘 virsh attach-disk aliyun-ci /mnt/nas/aliyun/ci/data.</description>
    </item>
    
    <item>
      <title>WireGuard 使用简介</title>
      <link>https://lewang.dev/posts/2019-10-30-wireguard-go-setup/</link>
      <pubDate>Wed, 30 Oct 2019 00:00:00 +0000</pubDate>
      
      <guid>https://lewang.dev/posts/2019-10-30-wireguard-go-setup/</guid>
      <description>背景 搭建 VPN 方便连接无公网 IP 云主机进行开发，WireGuard 配置比 OpenVPN 要简单很多，WireGuard 是通过 Linux 内核模块的方式实现的，这样性能最好，但是只能用在 Linux 系统上。本文使用的 wireguard-go， 则是使用 Golang 实现的 WireGuard 协议，属于用户空间(User Space)的实现，性能没有内核模块方式好，但好处就是跨平台且更简单易用。
VPN 的用处非常的多，不像 frp 之类的端口穿透应用，它是直接建立虚拟的网络，网络中的每个客户端也都可以拥有自己独立的 IP，于是测试调试就没有了端口的限制，非常的方便。
除了方便安全连接云服务器，还可以通过 VPN 搭建工业设备的远程部署和维护的解决方案。
编译 wireguard-go # 使用 GitHub 的源码镜像，速度会快一些 git clone git@github.com:wireguard/wireguard-go.git # 在 MacOS 下交叉编译 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o &amp;#34;wireguard-go&amp;#34; # Linux 环境下直接编译 go build -v -o &amp;#34;wireguard-go&amp;#34; cp wireguard-go /usr/sbin/ 编译 WireGuard tools git clone git@github.com:wireguard/wireguard.git # 安装依赖 ## debian&amp;amp;ubuntu sudo apt-get install libmnl-dev libelf-dev ## centos sudo yum install libmnl-devel elfutils-libelf-devel cd wireguard/src/tools make sudo make install 配置 WireGuard 生成密钥</description>
    </item>
    
  </channel>
</rss>
