tcp server 转发问题
Closed this issue · 8 comments
ltxhhz commented
nICEnnnnnnnLee commented
TCPServer 建议先不要使用Netty,测试连通性可以先试一试简单的ServerSocket。
不知道你的具体目的是什么,但是不ROOT的话Android 7.0以后的手机没法抓包HTTPS流量的。
ltxhhz commented
TCPServer 建议先不要使用Netty,测试连通性可以先试一试简单的ServerSocket。
不知道你的具体目的是什么,但是不ROOT的话Android 7.0以后的手机没法抓包HTTPS流量的。
好的我试试,我只用抓http其他的不作处理
nICEnnnnnnnLee commented
你使用了应用白名单模式,需要添加应用自身,并检查测试数据的发送包名"mark.via"是否正确
ltxhhz commented
nICEnnnnnnnLee commented
你改改再试试,访问443端口没有反应正常
http://1.1.1.1/
http://baidu.com:80/
try {
builder.addAllowedApplication(this.getPackageName());
//builder.addAllowedApplication("com.android.chrome");
builder.addAllowedApplication("mark.via");
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
if(dstPort == 80){
NATSession session = NATSessionManager.getSession("tcp", portKey);
if (session == null || session.RemoteIP != dstIP || session.RemotePort != dstPort) {
NATSessionManager.createSession("tcp", portKey, dstIP, dstPort);
}
ipHeader.setSourceIP(intUniqueIp);
ipHeader.setDestinationIP(intLocalIP);
tcpHeader.setDestinationPort((short) localPort);
Log.i(Config.tag, CommonMethods.ComputeTCPChecksum(ipHeader, tcpHeader) ? "校验成功" : "校验失败");
vpnOutput.write(ipHeader.m_Data, ipHeader.m_Offset, size);
}
writer.write("Content-Type: text/html; charset=UTF-8\r\n");
ltxhhz commented
非常感谢您,改动之后确实正常工作了,原来白名单需要添加自身的😭,这个我没想到