Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

The problem: servers appear to be broken inside my Ubuntu chroot. No matter what kind of server I try to run, they all seem unresponsive (VLC server won't respond to client, mkRemote doesn't move the cursor, Apache gives an error about binding to port 80 and won't start, etc.).

If I'm not mistaken, what should normally happen inside a chroot is that all ports are shared between the chroot and the host, so if another machine tries to hit the host at port 80, it will still see the chrooted Web server. However, here, that isn't what's happening.

When I run netstat from the chroot, every single process lists a foreign address of 0.0.0.0:*, meaning that the only machine which can act as a client is the local host. This is clearly incorrect and abnormal behaviour, as any process on my primary machine meant to be publicly visible lists a foreign address of :::* (which I assume means that any client can see it from any port).
Edit: Disregard that; apparently the foreign address only distinguishes between whether it's listening for IPv4 or IPv6 connections, so it doesn't seem relevant here.

So far, Googling has returned nothing of value, and I'm basically stumped. Any ideas? Could it just be some setting which one of the chroot patch devs enabled by default, or does it seem like a more complicated issue?

More context: http://rootzwiki.com/topic/14682-webos-servers-inside-chrooted-ubuntu/

share|improve this question
    
Possibly relevant information: * buu700.com/tpbind * buu700.com/tpnetstat * buu700.com/tpnmap –  Ryan Lester Jan 9 '12 at 23:15
    
    
Bump. Did you try out my solution? –  Andrew Larsson Apr 9 '12 at 22:30
1  
Oh, hey, sorry about that; I meant to update this three months ago and completely forgot (I actually only noticed your response now because I opened a SuperUser result from Google and saw the notification bar). I did actually end up (in January) doing pretty much exactly what you wrote, so thanks for the awesome answer! (I'd upvote it too, but my reputation isn't high enough. :/) –  Ryan Lester Apr 10 '12 at 2:24
    
Aside: The WiFi mouse idea apparently sucks. It's unusably laggy, and not worth trying at all. However, CM9 on the TouchPad is incredibly stable and works brilliantly with a cheap BlueTooth mouse (must-have apps, beyond a chroot, for desktop replacement: DroidEdit Pro, Better Terminal Pro, Dolphin Browser HD). –  Ryan Lester Apr 10 '12 at 2:27
show 1 more comment

1 Answer

up vote 1 down vote accepted

I had the same problem, and I found this question while searching the Internet for an answer, and I just discovered a solution! I was trying to get a Ruby on Rails WEBrick server running on my chrooted Ubuntu on my TouchPad. I surprisingly got all my gems installed correctly, and I started up the rails server. I went to localhost:3000 in my browser on my TouchPad, and it loaded up my project just fine. However, when I tried to navigate to my TouchPad's server on my desktop by visiting 192.168.x.x:3000, the request timed out. I knew that this had to be a firewall issue, but when checking in my chrooted Ubuntu, I realized that the firewall was disabled, and iptables wasn't even installed. I began thinking, and came up with a theory that WebOS was blocking the communication on all the ports. I scanned the ports with a network scanner on my computer, and nothing was open. It would ping-pong, but no port access. After some more searching, I found that the TouchPad uses iptables within WebOS. An easy way to access the underlying Linux behind WebOS is to use XTerm (you probably installed it along with Xecutah and XServer from Preware). Just start Xecutah, and click Start XTerm. I typed these commands to allow all access on all ports for WebOs, which in turn gives all port access to chrooted Ubuntu:

sudo iptables-save > /firewall.rules

iptables -X

iptables -t nat -F

iptables -t nat -X

iptables -t mangle -F

iptables -t mangle -X

iptables -P INPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -P OUTPUT ACCEPT

iptables -F

Don't worry if iptables -X gives you a link error. If, after you're done testing your server, you'd like to restore the firewall in WebOS, then just run this command:

iptables-restore < /firewall.rules

This is everything that got my server working on chrooted Ubuntu. The same should work for you.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.