mirror of
https://github.com/sirjonasxx/G-Earth.git
synced 2025-02-20 13:02:36 +01:00
specify port iptables linux only
This commit is contained in:
parent
62a5f696dd
commit
7470fb4533
@ -190,11 +190,11 @@ public class LinuxRawIpProxyProvider extends ProxyProvider {
|
||||
|
||||
protected void maybeAddMapping() {
|
||||
ipMapper.enable();
|
||||
ipMapper.addMapping(proxy.getActual_domain());
|
||||
ipMapper.addMapping(proxy.getActual_domain(), proxy.getActual_port(), proxy.getIntercept_port());
|
||||
}
|
||||
|
||||
protected void maybeRemoveMapping() {
|
||||
ipMapper.deleteMapping(proxy.getActual_domain());
|
||||
ipMapper.deleteMapping(proxy.getActual_domain(), proxy.getActual_port(), proxy.getIntercept_port());
|
||||
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,7 @@ public class WindowsRawIpProxyProvider extends LinuxRawIpProxyProvider {
|
||||
hasMapped = true;
|
||||
if (isNoneConnected()) {
|
||||
ipMapper.enable();
|
||||
ipMapper.addMapping(proxy.getActual_domain());
|
||||
ipMapper.addMapping(proxy.getActual_domain(), proxy.getActual_port(), proxy.getIntercept_port());
|
||||
}
|
||||
addMappingCache();
|
||||
}
|
||||
@ -60,7 +60,7 @@ public class WindowsRawIpProxyProvider extends LinuxRawIpProxyProvider {
|
||||
hasMapped = false;
|
||||
removeMappingCache();
|
||||
if (isNoneConnected()) {
|
||||
ipMapper.deleteMapping(proxy.getActual_domain());
|
||||
ipMapper.deleteMapping(proxy.getActual_domain(), proxy.getActual_port(), proxy.getIntercept_port());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,9 +18,9 @@ public abstract class IpMapper {
|
||||
|
||||
abstract public void enable();
|
||||
|
||||
abstract public void addMapping(String ip);
|
||||
abstract public void addMapping(String ip, int listenport, int connectport);
|
||||
|
||||
abstract public void deleteMapping(String ip);
|
||||
abstract public void deleteMapping(String ip, int listenport, int connectport);
|
||||
|
||||
abstract public List<String> getCurrentMappings();
|
||||
|
||||
|
@ -9,15 +9,17 @@ public class LinuxIpMapper extends IpMapper {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addMapping(String ip) {
|
||||
public void addMapping(String ip, int listenport, int connectport) {
|
||||
runCommand("iptables", "-t", "nat", "-A", "OUTPUT",
|
||||
"-p", "all", "-d", ip, "-j", "DNAT", "--to-destination", "127.0.0.1");
|
||||
"-p", "all", "-d", ip, "--dport", listenport+"", "-j", "DNAT",
|
||||
"--to-destination", "127.0.0.1:"+connectport);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteMapping(String ip) {
|
||||
public void deleteMapping(String ip, int listenport, int connectport) {
|
||||
runCommand("iptables", "-t", "nat", "-D", "OUTPUT",
|
||||
"-p", "all", "-d", ip, "-j", "DNAT", "--to-destination", "127.0.0.1");
|
||||
"-p", "all", "-d", ip, "--dport", listenport+"", "-j", "DNAT",
|
||||
"--to-destination", "127.0.0.1:"+connectport);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -10,12 +10,12 @@ public class MacIpMapper extends IpMapper {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addMapping(String ip) {
|
||||
public void addMapping(String ip, int listenport, int connectport) {
|
||||
runCommand("ifconfig", "lo0", "alias", ip);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteMapping(String ip) {
|
||||
public void deleteMapping(String ip, int listenport, int connectport) {
|
||||
runCommand("ifconfig", "lo0", "-alias", ip);
|
||||
}
|
||||
|
||||
|
@ -12,12 +12,12 @@ public class WindowsIpMapper extends IpMapper {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addMapping(String ip) {
|
||||
public void addMapping(String ip, int listenport, int connectport) {
|
||||
runCommand("netsh", "interface", "ip", "add", "address", "\"Loopback\"", ip, "255.255.255.255");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteMapping(String ip) {
|
||||
public void deleteMapping(String ip, int listenport, int connectport) {
|
||||
runCommand("netsh", "interface", "ip", "delete", "address", "\"Loopback\"", ip);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user