Você pode fazer isso com iptables
e um usuário diferente. Supondo que o endereço IP da interface que você quer que o comando use, é 1.2.3.4
e o nome eth1
e o gateway 1.2.3.1
.
1) Crie um novo usuário:
adduser user2
2) Marque os pacotes provenientes desse usuário:
iptables -t mangle -A OUTPUT -m owner --uid-owner user2 -j MARK --set-mark 42
3) Aplique o endereço IP nesses pacotes:
iptables -t nat -A POSTROUTING -o eth1 -m mark --mark 42 -j SNAT --to-source 1.2.3.4
4) Roteie os pacotes marcados através do gateway de eth1
:
ip rule add fwmark 42 table 42
ip route add default via 1.2.3.1 dev eth1 table 42
5) Execute o comando como o novo usuário:
sudo -u user2 ping example.com
ping example.com
agora seria roteado pelo gateway 1.2.3.1
, e não pelo gateway padrão do sistema.