我正在尝试为临时用户设置局域网信息网络服务器 - 因为我需要保持简单。我的路由器是运行ddwrt的netgear wnr2000,其中dnsmasq设置为提供本地DNS。我的网络服务器是运行PAWS http服务器的廉价机器人。目前,用户必须键入"我的房子:8080 /页面名称"作为网址。这是必须输入完整IP地址的一步,但我想消除端口参考。不完全确定如何做到这一点特别是因为我在网络上的唯一计算资源是路由器和android框。思考?
答案 0 :(得分:0)
当用户想要访问“我的房子”URL时,无需端口引用,您应该使用端口80(默认HTTP端口)而不是端口8080.
有一点谷歌,发现这篇文章是关于让PAW通过更改iptables来监听端口80 http://fun2code-blog.blogspot.co.uk/2011/11/running-paw-on-port-80.html
来自链接的代码如下(我没有经过测试,请自行决定使用),您需要是root用户import de.fun2code.android.pawserver.util.*;
execRootShell(String[] commands) {
shellCmd = "su -c sh";
sh = Runtime.getRuntime().exec(shellCmd);
os = sh.getOutputStream();
for(cmd : commands) {
os.write((cmd + "\n").getBytes());
}
os.write(("exit\n").getBytes());
os.flush();
sh.waitFor();
}
/* ---- Config -------- */
ip = Utils.getLocalIpAddress();
redirectFrom = 80;
redirectTo = 8080;
action = "ADD"; // Can be ADD or DELETE
/* -------------------- */
action = "-" + action.substring(0, 1);
String[] iptablesCmds = new String[] {
"iptables -t nat " + action + " OUTPUT -d 127.0.0.1 -p tcp --dport " + redirectFrom + " -j REDIRECT --to-ports " + redirectTo,
"iptables -t nat " + action + " OUTPUT -d " + ip + " -p tcp --dport " + redirectFrom + " -j REDIRECT --to-ports " + redirectTo,
"iptables -t nat " + action + " PREROUTING -d " + ip + " -p tcp --dport " + redirectFrom + " -j REDIRECT --to-ports " + redirectTo
};
execRootShell(iptablesCmds);