<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="https://v1sta.xyz/wp-content/plugins/pretty-rss-feeds/xslt/pretty-feed.xsl" type="text/xsl" media="screen" ?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/">

<channel>
	<title>Passwall &#8211; 景の域</title>
	<atom:link href="https://v1sta.xyz/tag/passwall/feed/" rel="self" type="application/rss+xml" />
	<link>https://v1sta.xyz</link>
	<description>远景的幻想空间</description>
	<lastBuildDate>Sat, 04 Apr 2026 03:52:39 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://v1sta.xyz/wp-content/uploads/2026/03/V1sta-Orb-Output512-2-60x60.png</url>
	<title>Passwall &#8211; 景の域</title>
	<link>https://v1sta.xyz</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/>
<atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>
<atom:link rel="hub" href="https://websubhub.com/hub"/>
<atom:link rel="self" href="https://v1sta.xyz/tag/passwall/feed/"/>
	<item>
		<title>软件路由器迁移记</title>
		<link>https://v1sta.xyz/tech/immortalwrt-softrouter/</link>
					<comments>https://v1sta.xyz/tech/immortalwrt-softrouter/#comments</comments>
		
		<dc:creator><![CDATA[远景の域主 V1STA]]></dc:creator>
		<pubDate>Sat, 21 Oct 2023 11:35:15 +0000</pubDate>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[日常]]></category>
		<category><![CDATA[ImmortalWRT]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenWRT]]></category>
		<category><![CDATA[Passwall]]></category>
		<guid isPermaLink="false">https://v1sta.xyz/?p=1759</guid>

					<description><![CDATA[之前一直想修一下多年未维护的Homelab，尤其是跑在PVE上用于国际上网的OpenWRT虚拟软件路由，已经有 &#8230; <a href="https://v1sta.xyz/tech/immortalwrt-softrouter/" class="more-link">继续阅读<span class="screen-reader-text">软件路由器迁移记</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p>之前一直想修一下多年未维护的Homelab，尤其是跑在PVE上用于国际上网的OpenWRT虚拟软件路由，已经有段时间没有更新，一些软件也都失效了；而第三方一键编译的固件并不开源，存在不透明的后门。</p>



<p>今天抽出了相对空闲的时间和精力，总算能处理这件琐事了，原本运行多时的OpenWRT终于下线，换成了较为规范并且入乡随俗的ImmortalWRT，几乎可以说是无缝迁移。</p>



<span id="more-1759"></span>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">前言</h2>



<p>这个OpenWRT本来是装在一台“网红工控机”上的，不过后来我就把它卖了，选择了扩展性能更强的H110台式平台，后来又因稳定性独立出去、换到了跑了Win10的H81上，当然为了重组服务现在又回来了……</p>



<p>我很久以前便开始研究OpenWRT，这是一个为路由器设计的Linux发行版。不过原版的OpenWRT是欧美开发者维护的，在天朝这边水土不服，缺少一些国内特有的软件和需求。</p>



<p>国内的OpenWRT圈子也很乱，一些“大大”们另起炉灶，但是种种原因不能同步到官方仓库源当中，多个“大大”的版本也互不兼容，好似神仙打架；另外一些编译者也丝毫不遵守开源透明的规则约束，反而持着李彦宏一样的态度，不仅加后门，还带来文革甚至大清时期的思想（高大全、师夷长技以制夷），嗯……这下真是120年清朝老兵了。堆料也非常严重，什么功能都往一个路由器系统上塞。可以说比以前的Android还要混乱。</p>



<p>然而国外的OpenWRT用户，并不需要考虑国内复杂的情况，自然也就没有这些稀奇古怪的东西。尤其是搭配了Proxmox VE这样的系统，也就是当作速度更快的廉价高性能路由使用（以往局域网内上网还需要用到Pentium4做Gateway网关），有了其他虚拟机服务，更没有必要如此折腾。</p>



<p>但在国内的话，这种烂摊子技能还是不能置之不理。比如说Passwall，就好比如在东北农村学会烧炕，显然在城市生活就不需要学习；但只要一天还留在农村生活，就还是要练习这种地域性技能。</p>



<p>SoftRouter这种东西其实是很复杂的，不是术业专攻的人很难理解如何学习。与其随着网红叫做软路由，我更倾向叫他软件路由器，就像捣鼓无线电技术的<strong>软件定义无线电</strong><em>（Software Defined Radio）</em>，<strong>简称SDR</strong>……</p>



<p>巧了，Router的第一个大写字母也是R，反正都是网络通信技术（笑）</p>



<p>在这种环境下，原版的OpenWRT不满足需求，那第三方“另起炉灶”编译的固件也不敢用。</p>



<p>后来我发现了ImmortalWRT，也是基于OpenWRT二次开发的发行版，就像Debian和Ubuntu、Arch和Manjaro的关系，它有一个完善的软件源仓库，比那些野路的第三方编译要靠谱一些。</p>



<p>虽然也是针对国内情况开创的独立分支，不过软件源和兼容性还是相当可观，一些常用的应用都有，维护和上游同步也较为规范与及时。（尽管如今23.05正式发布了，ImmortalWRT仍停留在rc4版本……不过也能用）</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">安装</h2>



<p>ImmortalWRT官方提供了类似原版OpenWRT的在线构建编译服务，默认预装了必备的软件包（如dnsmasq-full），还可以编辑自定义配置，增加 uci-defaults 初始化脚本，设定IP地址之类的项目。</p>



<p><a href="https://firmware-selector.immortalwrt.org/?version=23.05.0-rc4&amp;target=x86%2F64&amp;id=generic">https://firmware-selector.immortalwrt.org/?version=23.05.0-rc4&amp;target=x86%2F64&amp;id=generic</a></p>



<p>默认其实就有qcow2、vmdk等各种虚拟磁盘版本，还有iso格式的安装镜像，但这些需要手动配置IP地址。若使用自定义配置的话，就没有这些预提供的版本下载了。在PVE这类虚拟机平台，需要手动转换虚拟磁盘的格式。</p>



<p>PVE的虚拟机创建步骤就不过多赘述了，基本上大部分操作通过图形界面就能完成了，再就是通过local上传镜像。这方面ImmortalWRT和原版的OpenWRT安装过程大差不差。</p>



<p>主要还是记录转换磁盘格式、并导入存储在local-lvm虚拟机的命令：</p>



<pre class="wp-block-preformatted">#转到iso存储池
cd /var/lib/vz/template/iso/
#转换为qcow2磁盘格式
qemu-img convert -f raw -O   qcow2 immortalwrt-[…].img   […].qcow2
#导入对应ID的虚拟机
qm importdisk [VM ID] [...].qcow2 local-lvm</pre>



<p>转到虚拟机，设置硬盘和启动项，记得把Guest Agent打开，可以加入串口终端，监控和配置系统命令行。</p>



<p>随后开机，如果自定义设定了同网段IP（不能和原来的主路由重叠），不出意外现在就可以访问luci界面了。是的，就这样简单。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>同网段迁移路由结构的话，我是先在虚拟机仅配置了一个LAN桥接网络，并指向为现有的网关和DNS，访问互联网，随后进一步配置需要的软件包；</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://v1sta.xyz/wp-content/uploads/2023/10/image-8.png" data-lbwps-width="409" data-lbwps-height="339" data-lbwps-srcsmall="https://v1sta.xyz/wp-content/uploads/2023/10/image-8-300x249.png"><img data-dominant-color="f8f8f8" data-has-transparency="true" style="--dominant-color: #f8f8f8;" fetchpriority="high" decoding="async" width="409" height="339" sizes="(max-width: 409px) 100vw, 409px" src="https://v1sta.xyz/wp-content/uploads/2023/10/image-8.png" alt="" class="wp-image-1761 has-transparency" srcset="https://v1sta.xyz/wp-content/uploads/2023/10/image-8.png 409w, https://v1sta.xyz/wp-content/uploads/2023/10/image-8-300x249.png 300w" /></a></figure>
</div>


<p>待一切设定妥当以后（安装软件包、修改防火墙、接口规则），再添加额外的WAN网卡，并保持LAN DHCP打开。把光猫和新的软路由相连，通过PPPoE拨号成功之后，就可以把原来的OpenWRT路由VM关机了。</p>



<p>然后把新的路由系统的LAN设置取消V4网关和DNS，而IP设置为原来的x.1，就不影响原本网段的静态结构拓扑，以及其他设备和软件内的IP设定。就像狸猫换太子一般。</p>



<p>不过域主自己太懒，没有进一步去导入导出端口映射和DHCP绑定的设置，一些设备的IP地址还是发生了变动，但网段结构大体上是没有影响的，尤其是不易更改IP地址的PVE主机。</p>



<h2 class="wp-block-heading">软件配置</h2>



<p>以下是我主要安装的一些额外软件包：（是的，常见的一些L系特色软件，它们在ImmortalWRT官方的软件源就包含了）</p>



<pre class="wp-block-preformatted">luci-app-adbyby-plus
luci-app-advanced-reboot
luci-app-argon-config
luci-app-ddns-go
luci-app-fileassistant
luci-app-firewall
luci-app-frpc
luci-app-ipsec-vpnserver-manyusers
luci-app-openclash
luci-app-openvpn-server
luci-app-opkg
luci-app-passwall
luci-app-softethervpn
luci-app-ttyd
luci-app-udpxy
luci-app-unblockneteasemusic
luci-app-upnp
luci-app-wol
qemu-ga
umdns
kmod-ipt-fullconenat</pre>



<p>Passwall不多提，很多配置用copy paste就能够迁移，只是内核发生了变动，协议是一样的，有的订阅Node不是很好支持。</p>



<p>qemu-ga是非常常见的虚拟机服务，安装以后PVE就可以监控、关闭或重启路由器虚拟机了。</p>



<p>umdns可以开启路由器的mDNS广播，兼容苹果的Bonjour，可以通过 .local 访问主机。fullconenat也没有随默认软件附带，索性就自行安装了。</p>



<p>OpenVPN服务器也回来了，和以前一样，需要在命令行修改 <code>/etc/config/openvpn</code> ，加入 <code>option duplicate_cn '1'</code> 的代码，重新启动就可以允许多设备连接了。顺手配置了一下DDNS，发现原来的过期了，买了一个便宜域名，RDP和Moonlight串流又可以用了，善哉善哉。</p>



<p>SoftEther的话也可以使用，功能很强大，有用户管理功能，但是易用性不如OpenVPN，不太适合跟朋友们联机用。其他几个系统自带的VPN协议，由于版本差异和运营商阻断的关系，我就没连上过……</p>



<p>另外luci界面修改配置以后，有回滚更改的倒计时，默认5秒的生效等待，甚是令人厌烦。对于高性能的x86处理器而言，可以改成更短的时间。只需要编辑 <code>/etc/config/luci</code> 的代码行：</p>



<pre class="wp-block-preformatted">config internal 'apply'
        option rollback '30'
        option holdoff '4'
        option timeout '5'
        option display '1.5'</pre>



<p>我直接更改成更短的时间：</p>



<pre class="wp-block-preformatted">config internal 'apply'
        option rollback '30'
        option holdoff '0.2'
        option timeout '0.3'
        option display '0'</pre>



<p>不过实测保险起见，还是会有2秒左右的生效延迟，但已经足够了。另外新版的Passwall貌似也是直接编辑，不经过luci界面的生效延迟。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>棘手的软件路由器总算告一段落，接下来就要迁移一下PVE主机了。</p>



<p>然后是装个Windows Server重构Minecraft和CS的服务器，之后再研究一下Daphile和HomeAssistant吧……</p>



<p>希望这篇文章记录能帮到一些同好。</p>

<p><a href="https://v1sta.xyz/tech/immortalwrt-softrouter/" rel="nofollow">来源</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://v1sta.xyz/tech/immortalwrt-softrouter/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<enclosure url="https://v1sta.xyz/wp-content/uploads/2023/10/image-8.png" length="16316" type="image/png"/><media:content url="https://v1sta.xyz/wp-content/uploads/2023/10/image-8.png" width="409" height="339" medium="image" type="image/png"/>	</item>
	</channel>
</rss>
