Hi,
I’ve recently switched from Windows to Linux. I used WFP on Windows to address the CDN issues. Does Mudfish on Linux suffer from the same issues? If yes, what is the workaround?
Hi,
I’ve recently switched from Windows to Linux. I used WFP on Windows to address the CDN issues. Does Mudfish on Linux suffer from the same issues? If yes, what is the workaround?
Thank you for your feedback. As you can guess, my answer is that no WFP mode support for Linux at this moment.
I need to research a little bit how easily I can implement it. Let me create an internal ticket to follow up your feature request.
Thank you very much. I appreciate it.
EDIT: It seems this method won’t work because of how Steam’s loopback works.
I’m not sure if this is useful but I asked Claude.ai for a possible solution and this is what it came up with. Basically it creates a namespace for the game I’m playing (FF14) and then routes the traffic appropriately. This is configured specifically for my machine (CachyOS). I also haven’t tested this thoroughly yet.
#!/bin/bash
# Save as setup-ff14-namespace.sh
# Create namespace
sudo ip netns add ff14
# Create veth pair
sudo ip link add veth-ff14-host type veth peer name veth-ff14-ns
# Move one end to namespace
sudo ip link set veth-ff14-ns netns ff14
# Configure host side
sudo ip addr add 10.200.0.1/30 dev veth-ff14-host
sudo ip link set veth-ff14-host up
# Configure namespace side
sudo ip netns exec ff14 ip addr add 10.200.0.2/30 dev veth-ff14-ns
sudo ip netns exec ff14 ip link set veth-ff14-ns up
sudo ip netns exec ff14 ip link set lo up
# Enable forwarding
sudo sysctl -w net.ipv4.ip_forward=1
# Add UFW rules to allow namespace traffic
sudo ufw route allow in on veth-ff14-host
sudo ufw route allow out on veth-ff14-host
# Setup NAT using nftables - force traffic out tap0 only
sudo nft add table ip ff14nat
sudo nft add chain ip ff14nat postrouting { type nat hook postrouting priority 100 \; }
sudo nft add rule ip ff14nat postrouting ip saddr 10.200.0.0/30 oifname "tap0" masquerade
# Set default route in namespace
sudo ip netns exec ff14 ip route add default via 10.200.0.1
# Setup DNS in namespace
sudo mkdir -p /etc/netns/ff14
echo "nameserver 8.8.8.8" | sudo tee /etc/netns/ff14/resolv.conf
echo "nameserver 8.8.4.4" | sudo tee -a /etc/netns/ff14/resolv.conf
echo "Namespace setup complete"
echo "Traffic will route through tap0 (Mudfish)"
Cleanup script:
#!/bin/bash
# Save as cleanup-ff14-namespace.sh
# Remove UFW rules
sudo ufw route delete allow in on veth-ff14-host
sudo ufw route delete allow out on veth-ff14-host
# Remove nftables NAT table
sudo nft delete table ip ff14nat
# Delete veth interface
sudo ip link del veth-ff14-host
# Delete namespace
sudo ip netns del ff14
# Remove DNS config
sudo rm -rf /etc/netns/ff14
# Remove sudoers file if created
sudo rm -f /etc/sudoers.d/ff14-namespace
echo "FF14 namespace removed"
Then you adjust your startup to use the namespace:
sudo ip netns exec ff14 sudo -u <user> steam steam://rungameid/39210
Oops, looks like it’s based on network namespaces. That could be one way to simulate WFP mode on Linux, but it seems a bit complicated. If I were to implement this, I’d probably use eBPF + SO_BINDTODEVICE. ![]()