Passwall2 for OpenWrt 25.12
Installing Openwall2 on a GL-iNet MT3000 Router with Fork version of OpenWrt
This guide can be use with any router that has OpenWrt 25.12 firmware with at least 256MB of flash storage. After the install, my MT3000 shows it has about 40% of memory left, so routers with 128MB might not have enough memory. Just skip the Prerequisties section and go to the Installation section.
As of writing of this guide, the GL-MT3000 now have an offical firmware base on for OpenWrt is 25.12 and thus it switched from the older opkg package installer to the newer apk installer.
I'm not responsible if this guide brick your router. If it does happen, you can try using this guide to restore the firmware for your GL-iNet router.
Prerequisites
- Download the latest version of GL-iNet's fork of OpenWrt firmware at https://dl.gl-inet.com/router/mt3000/openwrt25.
- Log into the GL-Inet's Web Admin Panel at http://192.168.8.1
- From the
Systemmenu, selectUpgrade, and upload downloaded firmware fromFirmware Local Upgrademenu. - If you're upgrading from 24.10 base firmware, switch the
Keep Settingto Off as many settings have been changed. - Once finish installing the OpenWrt firmware and after the router will reboot, and log back into router.
- Got to the
Advanced Settingsmenu and selectInstall Nowto install OpenWrt's LuCI Web Admin.
Installation
Step 1. Ssh into your router at 192.168.8.1 as root user with PuTTY for Windows or using the built in ssh client in Windows Command Prompt/MacOS Terminal. Step 2. Run update for OpenWrt packages.
apk update
If you haven't install LuCI from the Admin Panel webpage, use the following command to install it.
apk add luci-app-opkg
Step 3. Remove the default dnsmasq and install dnsmasq-full package. Might be already been installed, but just in case it didn't.
apk del dnsmasq
apk add dnsmasq-full
Step 4. Install required kernel modules packages. Again, might be already installed.
apk add kmod-nft-tproxy kmod-nft-socket
Step 5. Add the public key from Sourceforge repo for the need Passwall packages.
wget https://master.dl.sourceforge.net/project/openwrt-passwall-build/apk.pub -O /etc/apk/keys/passwall.pub
Step 6. Create a custom feed for the Passwall packages from Sourceforge repo
read release arch << EOF
$(. /etc/openwrt_release ; echo ${DISTRIB_RELEASE%.*} $DISTRIB_ARCH)
EOF
for feed in passwall_packages passwall_luci passwall2; do
echo "https://master.dl.sourceforge.net/project/openwrt-passwall-build/releases/packages-$release/$arch/$feed/packages.adb" >> /etc/apk/repositories.d/customfeeds.list
done
Step 7. Run opkg update again for Passwall2 repo
apk update
Step 8. Install Passwall2 and couple of other proxy protocols
apk add luci-app-passwall2 sing-box xray-core xray-plugin v2ray-plugin hysteria naiveproxy chinadns-ng dns2socks
Step 9. Reboot router for all Passwall2 to be fully working.
reboot
You should now see Passwall2 sub-menu under the `Services' main menu.
Optional: Install Argo Theme for LuCI web admin
I personally think Passwall2 looks better with the Argon theme than the default bootstrap theme. Use the following command lines to install it.
cd /tmp
wget https://github.com/jerrykuku/luci-theme-argon/releases/download/v2.4.5/luci-theme-argon-2.4.5-r1.apk -O luci-theme-argon.apk
wget https://github.com/jerrykuku/luci-theme-argon/releases/download/v2.4.5/luci-app-argon-config-2.4.5-r1.apk -O luci-app-argon-config.apk
apk add --allow-untrusted luci*.apk