This guide was written by Ass[em] and originally posted in the Battle.net forums:

Hi all!!

Finally, I have found a solution for us people having the problem of playing simultaneously Starcraft / Brood War on multiple computers (in a same game) using a single internet connection with no latency or choppy movements!

******THIS WORKS FOR PATCH 1.16.1 (as tested on July 16, 2009)

This solution is for ADVANCED to EXPERTS technically-savvy individuals only, and have been tested only with a Linksys WRT54G router with DD-WRT firmware installed. (Please do not attempt to install DD-WRT on your router if you do not have the knowledge to do so, as you may brick your router). Please DO NOT attempt to do anything below if you do not know what you are doing!!!

1) Remove any Port Forwarding rule on your router and make sure that all computers have their software firewall disabled;

2) You need to change the Network TCP/IP settings manually on each computer that you intend to play Starcraft / Brood War on as follows (this can be done by going to Network Connections, right-clicking on your Internet Connection and clicking on Properties, then scrolling down and double-clicking on Internet Protocol (TCP/IP)):

Each computer must have an IP Address with a different Subnet Mask.
Let’s assume that the router has an IP Address of 192.168.1.1

Example:
Computer A: IP: 192.168.1.129
Subnet Mask: 255.255.255.128
Gateway: 192.168.1.1
Preferred DNS Server: 192.168.1.1

Computer B: IP: 192.168.1.193
Subnet Mask: 255.255.255.192
Gateway: 192.168.1.1
Preferred DNS Server: 192.168.1.1

3) You need to change the Port that Starcraft is using on Computer B.
To do this, open your registry editor “regedit” and go to your Starcraft registry key (in HKEY_LOCAL_MACHINE\BLIZZARD ENTERTAINMENT\Starcraft) and add a DWORD value, name it [Game Data Port] (without the brackets) and give it a value of 6113 (DECIMAL value, make sure you check that radio button).

4) You need to add a new NAT rule in the firewall of your router. To do this in DD-WRT, go to the Administration tab, then Commands and enter the rules below then click on SAVE FIREWALL.

In this example, 70.100.200.112 is the public IP address for the two people behind the NAT router (WAN IP Address). 192.168.1.129 is the IP address of one client machine (Computer A), and 192.168.1.193 is the IP address of the other client machine (Computer B). On the router, type these commands as root:

iptables -t nat -I PREROUTING -p udp -d 70.100.200.112 --dport 64001 -j DNAT --to-destination 192.168.1.129:6112
iptables -t nat -I POSTROUTING -p udp -s 192.168.1.129 --sport 6112 -j SNAT --to-source 70.100.200.112:64001

iptables -t nat -I PREROUTING -p udp -d 70.100.200.112 --dport 64002 -j DNAT --to-destination 192.168.1.193:6113
iptables -t nat -I POSTROUTING -p udp -s 192.168.1.193 --sport 6113 -j SNAT --to-source 70.100.200.112:64002

5) That’s it! You’re all set! Only problem is that you guys won’t be able to create a game together, BUT IF YOU BOTH JOIN A GAME IT WILL WORK 100% with NO LAG OR CHOPPY! EVEN TRIED 4v4 with no problem whatsoever!!

6) You could add more computers this way, as long as they are not on the same subnet mask and port as the other ones you should be fine!

Examples of additional computers settings:

Computer C: IP Address: 192.168.1.225
Subnet Mask: 255.255.255.224
Gateway: 192.168.1.1
Preferred DNS Server: 192.168.1.1

Game Data Port: 6114 (add new DWORD in regedit)

Computer D: IP Address: 192.168.1.241
Subnet Mask: 255.255.255.240
Gateway: 192.168.1.1
Preferred DNS Server: 192.168.1.1

Game Data Port: 6115 (add new DWORD in regedit)

Then add the two additional IPTABLES rules above accordingly (change IPAddress and Ports) as follows:

iptables -t nat -I PREROUTING -p udp -d 70.100.200.112 --dport 64003 -j DNAT --to-destination 192.168.1.225:6114
iptables -t nat -I POSTROUTING -p udp -s 192.168.1.225 --sport 6114 -j SNAT --to-source 70.100.200.112:64003

iptables -t nat -I PREROUTING -p udp -d 70.100.200.112 --dport 64004 -j DNAT --to-destination 192.168.1.241:6115
iptables -t nat -I POSTROUTING -p udp -s 192.168.1.241 --sport 6115 -j SNAT --to-source 70.100.200.112:64004

GL HF~!!!

Cheers!

Jonathan aka Ass[eM]
Quebec, Canada

Some parts of this post were taken from an original solution from John Paul (funofmath.com) at the following link: http://www.funofmath.com/weblog/2007/04/starcraft-and-nat.html . However, since patch 1.16.1, John Paul’s solution stopped working. I have made some additional research as well as many hours of trial and error to find a suitable solution. You may look at the bottom of John Paul’s page for my comment and solution, which is essentially the same as this post.