diff --git a/conf.c b/conf.c index 04e9956..f519a6a 100644 --- a/conf.c +++ b/conf.c @@ -263,7 +263,9 @@ static void conf_ports(const struct ctx *c, char optname, const char *optarg, ifname++; } - if (inet_pton(AF_INET, buf, addr)) + if (ifname == buf + 1) /* Interface without address */ + addr = NULL; + else if (inet_pton(AF_INET, buf, addr)) af = AF_INET; else if (inet_pton(AF_INET6, buf, addr)) af = AF_INET6; diff --git a/passt.1 b/passt.1 index 4c90634..cb7ae4e 100644 --- a/passt.1 +++ b/passt.1 @@ -385,6 +385,9 @@ Forward local port 22, bound to 192.0.2.1, to port 22 on the guest -t 192.0.2.1%eth0/22 Forward local port 22, bound to 192.0.2.1 and interface eth0, to port 22 .TP +-t %eth0/22 +Forward local port 22, bound to any address on interface eth0, to port 22 +.TP -t 2000-5000,~3000-3010 Forward local ports between 2000 and 5000, except for those between 3000 and 3010 @@ -467,6 +470,9 @@ Forward local port 22, bound to 192.0.2.1, to port 22 in the target namespace -t 192.0.2.1%eth0/22 Forward local port 22, bound to 192.0.2.1 and interface eth0, to port 22 .TP +-t %eth0/22 +Forward local port 22, bound to any address on interface eth0, to port 22 +.TP -t 2000-5000,~3000-3010 Forward local ports between 2000 and 5000, except for those between 3000 and 3010