Is there equivalent of WFP on Linux?

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?

:frowning: 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. :slight_smile:

@ilitirit If you still use Mudfish, please consider to install Mudfish v6.2.0 which found at Index of /releases/ link and test WFP Item mode.

I’d implemented it for Linux version. Let me know if there’s something wrong. :slight_smile: Thank you for your patience.

Thank you so much. I will be testing this starting today

@weongyo This doesn’t appear to work (6.2.0 and 6.2.1). When I launch it and connect it never completes the auto-configuration.

It seems the launcher is looking for a file that does not exist in the package:

Blockquote
Mon, 22 Dec 2025 13:48:41 GMT [10.784767] [INFO] run: Launched mudfish
Mon, 22 Dec 2025 13:48:41 GMT [10.785864] [DEBUG] cmd: Child said: Executing /opt/mudfish/6.2.1/bin/mudflow -r -G 3 -p rttmethod=UDP -C rttcheck_max_threads=2 -w -c (wait 0)
Mon, 22 Dec 2025 13:48:41 GMT [10.786276] [DEBUG] cmd: Child said: Executing /opt/mudfish/6.2.1/bin/mudwfp_proxy -r -M 1400 (wait 0)
Mon, 22 Dec 2025 13:48:41 GMT [10.786632] [DEBUG] cmd: Child said: Executing /opt/mudfish/6.2.1/bin/mudfish -G 3 -R -u ilitirit -p ‘[redacted]’ ^ 0.000000 -l -T udp -M 1400 (wait 0)
Mon, 22 Dec 2025 13:48:41 GMT [10.787152] [DEBUG] cmd: Child said: /bin/sh: line 1: /opt/mudfish/6.2.1/bin/mudwfp_proxy: No such file or directory
Mon, 22 Dec 2025 13:48:41 GMT [10.787488] [DEBUG] cmd: Child said: /bin/sh: -c: line 1: unexpected EOF while looking for matching `‘’

I used these two files for testing:
mudfish-6.2.0-linux-x86_64.sh
mudfish-6.2.1-linux-x86_64.sh

Side note: The password was previously obfuscated in the debug logs. In the new versions they are visible in plain text.

:frowning: Ooops. Please download mudfish-6.2.1-linux-x86_64.sh file again and install. It should be fixed and mudwfp_proxy binary should be under /opt/mudfish/6.2.1/bin/mudwfp_proxy path.

I found that the binary is under the package binary properly and forgot to install it the installation path..

Thank you for this. It appears to be working very well, at least for FF14. No noticeable performance issues. I tested it with a 30GB torrent file, and downloaded several steam games. Last week my balance decreased by 14GB due to other downloads. With this change my balance was not affected.

Cool! :slight_smile: I hope now everything goes well with mudfish. Please let me know if there are any other problems.

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.