Linux d oesn't allow low port numbers to be used without running as root which means that for host port 80 to be forwarded it would need to run vbox as root which apparently is hideous to do, so instead I've set vbox to forward host port 8080 to port 80 guest. For this to work something needs to be listening on port 8080 so I have a node script which does that: john@john-mint ~/Documents/projects/portforward $ node proxy.js 9001 8080 Then can browse to linux host port 9001 and it will in turn forward to 8080 which will in turn be forwarded by vbox to guest port 80. Here is the script itself: var net = require('net'); // parse "80" and "localhost:80" or even "42mEANINg-life.com:80" var addrRegex = /^(([a-zA-Z\-\.0-9]+):)?(\d+)$/; var addr = { from: addrRegex.exec(process.argv[2]), to: addrRegex.exec(process.argv[3]) }; if (!addr.from || !addr.to) { console.log('Usage: '); return; } net.createServer(function(from) { var to = net.createConnection({ host: addr.to[2], port: addr.to[3] }); from.pipe(to); to.pipe(from); }).listen(addr.from[3], addr.from[2]);