I am trying to setup a NodeJS http proxy for Chrome on Android phones, on my local network
Here is the code
import { createServer, request } from 'http';
import { networkInterfaces } from 'os';
const nets = networkInterfaces();
const ips = Object.entries(nets)
.map(([type, v]) =>
v.map(({ address, family: mode }) => ({
type,
mode,
address,
})),
)
.flat();
const server = createServer((req, res) => {
const { method, url, headers, socket } = req;
const { host } = headers;
const { remoteAddress } = socket;
console.log('Http request caught : ', { method, url, host, remoteAddress });
const proxy = request({ hostname: host, port: 80, path: url, method, headers }, (proxyres) => {
res.writeHead(proxyres.statusCode, proxyres.headers);
proxyres.pipe(res, { end: true });
});
proxy.on('error', (error) => {
console.log('Error proxying request : ');
console.log(error);
res.writeHead(500);
res.end('Proxy request failed');
});
req.pipe(proxy, { end: true });
});
server.on('listening', () => {
console.log('Server started on port 3000');
console.log('Here are your IP adresses, set one as your proxy : ');
console.log(ips);
});
server.listen(3000, '0.0.0.0');
After configuring the proxy settings on my Wi-Fi connection, I can see some requests :
Http request caught : {
method: 'GET',
url: 'http://www.google.eu/generate_204',
host: 'www.google.eu',
remoteAddress: 'my.ip'
}
Http request caught : {
method: 'GET',
url: 'http://conn-service-eu-04.allawnos.com/generate204',
host: 'conn-service-eu-04.allawnos.com',
remoteAddress: 'my.ip'
}
The issue is, those are random calls (I don’t know where they come from, probably some internal shenanigans), but i cannot see HTTP requests I trigger myself, those include :
- Chrome websites
- Discord
- Play store
- Some PWAs
- …
So my question is, how can I see all HTTP requests being made from my Android phone ?