Hi - here's the deal
I've a server connected directly to the internet via eth0. I use the Suse firewall to protect
eth0. Eth1 is connected to a hub, allowing other PCs to connect to interweb using masquerading.
One of the other PC's has a working webcam connected to it, and I'm using webcam_server (
http://webcamserver.sourceforge.net/) to serve up the images. It works well internally, but not so when trying to connect from outside of the network.
Here's how it's setup: The machine with the webcam is running apache (on port 80), and has the following index.html
Code:
<html>
<head>
<title>WebCam</title>
</head>
<APPLET CODE = "WebCamApplet.class" archive="applet.jar" WIDTH = "320" HEIGHT = "240">
<param name=URL value="http://192.168.1.16:8888">
<param name=FPS value="1">
<param name=width value="320">
<param name=height value="240">
</APPLET>
</body>
</html>
I have forwarded external requests on 8080/8888 to 80/8888 on 192.168.1.16 using the SUSE firewall (and have opened them to external requests):
Code:
FW_FORWARD_MASQ="0/0,192.168.1.16,tcp,8080,80,0/0 0/0,192.168.1.16,tcp,8888,8888,0/0"
From what I see in the logs, the 8080 request seems to be forwarded correctly to port 80 on 192.168.1.16, and the applet actually loads in the browser....but for some reason, the applet fails to connect to the webcam.
I feel sure this a firewall/routing issue, but my knowledge in the area is so limited that I don't really know where to start looking. It's a great opportunity to learn something interesting though.
One other thing..if I directly request port 8888 from the internet i.e
http:///mywebsite.com:8888, I do see a still image, and the logs on the gateway machine show the request being forwarded to 192.168.1.16.
Any pointers anyone?
EDIT: I tried replacing the index.html with a plain html file, and it displayed correctly. So it's defininately something to do with 8888