Seu script funciona e cria as entradas do iptables:
# iptables -L FORWARD -nv
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 192.168.1.10 tcp dpt:10010
0 0 ACCEPT tcp -- * * 0.0.0.0/0 192.168.1.11 tcp dpt:10011
0 0 ACCEPT tcp -- * * 0.0.0.0/0 192.168.1.12 tcp dpt:10012
...
0 0 ACCEPT tcp -- * * 0.0.0.0/0 192.168.1.98 tcp dpt:10098
0 0 ACCEPT tcp -- * * 0.0.0.0/0 192.168.1.99 tcp dpt:10099
0 0 ACCEPT tcp -- * * 0.0.0.0/0 192.168.1.100 tcp dpt:10100
# iptables -t nat -L PREROUTING -nv
Chain PREROUTING (policy ACCEPT 11 packets, 1746 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:10010 to:192.168.1.10:5900
0 0 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:10011 to:192.168.1.11:5900
0 0 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:10012 to:192.168.1.12:5900
...
0 0 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:10098 to:192.168.1.98:5900
0 0 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:10099 to:192.168.1.99:5900
0 0 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:10100 to:192.168.1.100:5900
Coloque seu script em um arquivo próprio com #!/bin/bash
como linha 1, dê permissão de execução, teste-o e, quando estiver pronto, chame-o de rc.local
'