<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.cursedsilicon.net/index.php?action=history&amp;feed=atom&amp;title=OpenWRT_as_a_Proxmox_VM</id>
	<title>OpenWRT as a Proxmox VM - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cursedsilicon.net/index.php?action=history&amp;feed=atom&amp;title=OpenWRT_as_a_Proxmox_VM"/>
	<link rel="alternate" type="text/html" href="https://wiki.cursedsilicon.net/index.php?title=OpenWRT_as_a_Proxmox_VM&amp;action=history"/>
	<updated>2026-05-25T23:03:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.cursedsilicon.net/index.php?title=OpenWRT_as_a_Proxmox_VM&amp;diff=397&amp;oldid=prev</id>
		<title>CamoYoshi: Some formatting fixes and rearranging the steps to reduce number of restarts required</title>
		<link rel="alternate" type="text/html" href="https://wiki.cursedsilicon.net/index.php?title=OpenWRT_as_a_Proxmox_VM&amp;diff=397&amp;oldid=prev"/>
		<updated>2026-05-22T01:29:27Z</updated>

		<summary type="html">&lt;p&gt;Some formatting fixes and rearranging the steps to reduce number of restarts required&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:29, 21 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 1. Create new bridge in Proxmox VE ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 1. Create new bridge in Proxmox VE ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;a. Add the following to your network bridge:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;a. Add the following to your network bridge:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;&lt;/del&gt;auto &amp;lt;name-of-bridge&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&amp;lt;/code&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  auto &amp;lt;name-of-bridge&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;&lt;/del&gt;iface &amp;lt;name-of-bridge&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&amp;lt;/code&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  iface &amp;lt;name-of-bridge&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;lt;code&amp;gt;        &lt;/del&gt;bridge-ports none&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/code&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;         &lt;/ins&gt;bridge-ports none&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;lt;code&amp;gt;        &lt;/del&gt;bridge-stp off&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/code&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;         &lt;/ins&gt;bridge-stp off&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;lt;code&amp;gt;        &lt;/del&gt;bridge-fd 0&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/code&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;         &lt;/ins&gt;bridge-fd 0&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;lt;code&amp;gt;        &lt;/del&gt;post-up echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;         &lt;/ins&gt;post-up echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/&lt;/del&gt;code&amp;gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;&amp;lt;name-of-bridge&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&amp;lt;/code&lt;/ins&gt;&amp;gt; should be an available vmbr# interface, such as &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;&lt;/ins&gt;vmbr1&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/code&amp;gt;&lt;/ins&gt;. This bridge will be dedicated to all our CGHMN Proxmox VMs going forward.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;name-of-bridge&amp;gt; should be an available vmbr# interface, such as vmbr1. This bridge will be dedicated to all our CGHMN Proxmox VMs going forward.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;b. Run:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;b. Run:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l22&quot;&gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 21:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====== 2. Create new OpenWRT VM ([https://computingforgeeks.com/install-and-configure-openwrt-vm-on-proxmox-ve/ based off this tutorial]). ======&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====== 2. Create new OpenWRT VM ([https://computingforgeeks.com/install-and-configure-openwrt-vm-on-proxmox-ve/ based off this tutorial]). ======&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;a. Download the x86-64-generic-ext4-combined.img.gz OpenWRT image&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;a. Download the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;&lt;/ins&gt;x86-64-generic-ext4-combined.img.gz&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/code&amp;gt; &lt;/ins&gt;OpenWRT image&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;b. Transfer it to your Proxmox system using SFTP&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;b. Transfer it to your Proxmox system using SFTP&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l63&quot;&gt;Line 63:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 62:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;c. Show current network configuration:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;c. Show current network configuration:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  uci show network&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  uci show network&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;d. Set a static IP address that is accessible from another VM with a GUI. For example if you have a VM at 203.0.113.100 and your existing bridge subnet is 203.0.113.0/24, then you could set your OpenWRT&#039;s vmbr0 interface to be 203.0.113.101.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;d. Set a static IP address that is accessible from another VM with a GUI &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(this will make troubleshooting and checking your config easier)&lt;/ins&gt;. For example if you have a VM at &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;&lt;/ins&gt;203.0.113.100&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/code&amp;gt; &lt;/ins&gt;and your existing bridge subnet is &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;&lt;/ins&gt;203.0.113.0/24&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/code&amp;gt;&lt;/ins&gt;, then you could set your OpenWRT&#039;s &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;&lt;/ins&gt;vmbr0&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/code&amp;gt; &lt;/ins&gt;interface to be &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;&lt;/ins&gt;203.0.113.101&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/code&amp;gt;&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;e. Do the above by editing &amp;lt;code&amp;gt;/etc/config/network&amp;lt;/code&amp;gt; file and adding the following:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;e. Do the above by editing &amp;lt;code&amp;gt;/etc/config/network&amp;lt;/code&amp;gt; file and adding the following:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>CamoYoshi</name></author>
	</entry>
	<entry>
		<id>https://wiki.cursedsilicon.net/index.php?title=OpenWRT_as_a_Proxmox_VM&amp;diff=396&amp;oldid=prev</id>
		<title>CamoYoshi: Initial commit</title>
		<link rel="alternate" type="text/html" href="https://wiki.cursedsilicon.net/index.php?title=OpenWRT_as_a_Proxmox_VM&amp;diff=396&amp;oldid=prev"/>
		<updated>2026-05-22T01:25:33Z</updated>

		<summary type="html">&lt;p&gt;Initial commit&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== Proxmox with single network interface CGHMN setup with virtual OpenWRT: ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Make sure you have signed up for CGHMN first before starting this! You will need to imput various details sent in your welcome message.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==== 1. Create new bridge in Proxmox VE ====&lt;br /&gt;
a. Add the following to your network bridge:&lt;br /&gt;
 &amp;lt;code&amp;gt;auto &amp;lt;name-of-bridge&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;iface &amp;lt;name-of-bridge&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;        bridge-ports none&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;        bridge-stp off&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;        bridge-fd 0&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;        post-up echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
 &amp;lt;/code&amp;gt;	&lt;br /&gt;
&amp;lt;name-of-bridge&amp;gt; should be an available vmbr# interface, such as vmbr1. This bridge will be dedicated to all our CGHMN Proxmox VMs going forward.&lt;br /&gt;
&lt;br /&gt;
b. Run:&lt;br /&gt;
 systemctl networking restart&lt;br /&gt;
c. Confirm configuration is correct with:&lt;br /&gt;
 ip a&lt;br /&gt;
Example output:&lt;br /&gt;
 21: vmbr1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc noqueue state UP group default qlen 1000&lt;br /&gt;
&lt;br /&gt;
====== 2. Create new OpenWRT VM ([https://computingforgeeks.com/install-and-configure-openwrt-vm-on-proxmox-ve/ based off this tutorial]). ======&lt;br /&gt;
a. Download the x86-64-generic-ext4-combined.img.gz OpenWRT image&lt;br /&gt;
&lt;br /&gt;
b. Transfer it to your Proxmox system using SFTP&lt;br /&gt;
&lt;br /&gt;
c. Decompress it so you have a .img file using gzip:&lt;br /&gt;
 gzip -d openwrt*.img.gz&lt;br /&gt;
d. To make space for additional software that we&amp;#039;re going to install to OpenWRT later, grow the disk image to 1GB:&lt;br /&gt;
 qemu-img resize -f raw ./openwrt.img 1G&lt;br /&gt;
e. Create the VM using the following command:&lt;br /&gt;
 qm create --name &amp;lt;vm-name&amp;gt; &amp;lt;available-vm-id#&amp;gt; --memory 256 --cores 1 --cpu cputype=kvm64 --net0 virtio,bridge=&amp;lt;existing-proxmox-network-bridge&amp;gt; --net1 virtio,bridge=&amp;lt;name-of-bridge&amp;gt; --scsihw virtio-scsi-pci --numa 1&lt;br /&gt;
f. Check for available VM disk stores:&lt;br /&gt;
 pvesm status&lt;br /&gt;
Example Output:&lt;br /&gt;
 Name         Type     Status           Total            Used       Available        %&lt;br /&gt;
 local         dir     active       772966856        53281488       680347384    6.89%&lt;br /&gt;
g. Import disk image into VM:&lt;br /&gt;
 qm importdisk &amp;lt;available-vm-id#&amp;gt; ./openwrt.img &amp;lt;vm-disk-store&amp;gt;&lt;br /&gt;
Example Output:&lt;br /&gt;
 transferred 0.0 GiB of 1.0 GiB (0.00%)&lt;br /&gt;
 ...&lt;br /&gt;
 transferred 1.0 GiB of 1.0 GiB (99.59%)&lt;br /&gt;
 transferred 1.0 GiB of 1.0 GiB (100.00%)&lt;br /&gt;
 transferred 1.0 GiB of 1.0 GiB (100.00%)&lt;br /&gt;
 Successfully imported disk as &amp;#039;unused0:local:102/vm-102-disk-0.raw&amp;#039;&lt;br /&gt;
h. Attach imported disk to VM:&lt;br /&gt;
 qm set &amp;lt;available-vm-id#&amp;gt; --scsihw virtio-scsi-pci --virtio0 &amp;lt;vm-disk-store&amp;gt;:&amp;lt;available-vm-id#&amp;gt;/vm-&amp;lt;available-vm-id#&amp;gt;-disk-0.raw&lt;br /&gt;
Example Output:&lt;br /&gt;
 update VM 102: -scsihw virtio-scsi-pci -virtio0 local:102/vm-102-disk-0.raw&lt;br /&gt;
i. Set serial console and boot order priority:&lt;br /&gt;
 qm set &amp;lt;available-vm-id#&amp;gt; --serial0 socket --vga serial0&lt;br /&gt;
 qm set &amp;lt;available-vm-id#&amp;gt; --boot c --bootdisk virtio0&lt;br /&gt;
j. (optional if you want it to boot on Proxmox startup) - Configure VM to start up on system boot:&lt;br /&gt;
 qm set &amp;lt;available-vm-id#&amp;gt; --onboot 1&lt;br /&gt;
&lt;br /&gt;
====== 3. Configure OpenWRT ======&lt;br /&gt;
a. Start VM and connect to the console. Once started enter the console shell by pressing Enter.&lt;br /&gt;
&lt;br /&gt;
b. Set a new root password:&lt;br /&gt;
 passwd&lt;br /&gt;
c. Show current network configuration:&lt;br /&gt;
 uci show network&lt;br /&gt;
d. Set a static IP address that is accessible from another VM with a GUI. For example if you have a VM at 203.0.113.100 and your existing bridge subnet is 203.0.113.0/24, then you could set your OpenWRT&amp;#039;s vmbr0 interface to be 203.0.113.101.&lt;br /&gt;
&lt;br /&gt;
e. Do the above by editing &amp;lt;code&amp;gt;/etc/config/network&amp;lt;/code&amp;gt; file and adding the following:&lt;br /&gt;
 config interface &amp;#039;lan&amp;#039;&lt;br /&gt;
 	option device &amp;#039;br-lan&amp;#039;&lt;br /&gt;
 	option proto &amp;#039;static&amp;#039;&lt;br /&gt;
 	option ipaddr &amp;#039;&amp;lt;your-chosen-IP-address&amp;gt;&amp;#039;&lt;br /&gt;
 	option netmask &amp;#039;&amp;lt;matching-netmask-with-vmbr0&amp;gt;&amp;#039;&lt;br /&gt;
 	option gateway &amp;#039;&amp;lt;vmbr0-gateway-ip-for-internet-access&amp;gt;&amp;#039;&lt;br /&gt;
 	list dns &amp;#039;&amp;lt;public-dns-resolver-such-as-quad9-or-google&amp;gt;&amp;#039;&lt;br /&gt;
 	list dns &amp;#039;&amp;lt;2nd-public-dns-resolver&amp;gt;&amp;#039;&lt;br /&gt;
 	&amp;lt;list as many resolvers as you would like&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 config interface &amp;#039;retro_lan&amp;#039;&lt;br /&gt;
 	option device &amp;#039;br-retrolan&amp;#039;&lt;br /&gt;
 	option proto &amp;#039;static&amp;#039;&lt;br /&gt;
 	option ipaddr &amp;#039;&amp;lt;cghmn-assigned-subnet&amp;gt;&amp;#039;&lt;br /&gt;
 	option netmask &amp;#039;&amp;lt;cghmn-assigned-netmask-usually-255.255.255.0&amp;gt;&amp;#039;&lt;br /&gt;
 	option multipath &amp;#039;off&amp;#039;&lt;br /&gt;
 	list dns &amp;#039;100.64.11.1&amp;#039;&lt;br /&gt;
 	list dns &amp;#039;100.64.12.2&amp;#039;&lt;br /&gt;
f. Add a static route to allow for your router to reach the internet. This should be the IP of the Proxmox VE&amp;#039;s &amp;lt;code&amp;gt;vmbr0&amp;lt;/code&amp;gt; interface. For example, if &amp;lt;code&amp;gt;vmbr0&amp;lt;/code&amp;gt; on Proxmox VE is configured as &amp;lt;code&amp;gt;203.0.113.1&amp;lt;/code&amp;gt;, you would put that in this command on OpenWRT so it would know who to communicate with to get to the internet. You can do this by adding the following to &amp;lt;code&amp;gt;/etc/config/network&amp;lt;/code&amp;gt;:&lt;br /&gt;
 config route&lt;br /&gt;
        option interface &amp;#039;lan&amp;#039;&lt;br /&gt;
        option target &amp;#039;0.0.0.0/0&amp;#039;&lt;br /&gt;
        option gateway &amp;#039;203.0.113.1&amp;#039;&lt;br /&gt;
g. Restart the networking stack to read the new configuration settings:&lt;br /&gt;
 /etc/init.d/network restart&lt;br /&gt;
i. Update your package lists:&lt;br /&gt;
 apk update&lt;br /&gt;
j. Install any additional desired software using apk, such as wget (needed for the next step)&lt;br /&gt;
&lt;br /&gt;
k. Download the &amp;lt;code&amp;gt;get-connected.sh&amp;lt;/code&amp;gt; script to your OpenWRT router by following the steps [[How to Get Connected|here]]&lt;br /&gt;
&lt;br /&gt;
l. Once the steps from the link are completed, reboot your VM and reconnect. Your Wireguard connection should establish automatically and be bridged through the Wireguard tunnel to CGHMN, and your systems should automatically get an IP address from your assigned subnet. Additional configuration should have been added to &amp;lt;code&amp;gt;/etc/config/network&amp;lt;/code&amp;gt; to accommodate the Wireguard connection. &amp;#039;&amp;#039;&amp;#039;If you need to share the contents of this file make sure you do not include your&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;private_key&amp;lt;/code&amp;gt; &amp;#039;&amp;#039;&amp;#039;from the configuration!&amp;#039;&amp;#039;&amp;#039; Your &amp;lt;code&amp;gt;public_key&amp;lt;/code&amp;gt; is OK to share.&lt;/div&gt;</summary>
		<author><name>CamoYoshi</name></author>
	</entry>
</feed>