<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://linux-vserver.at/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://linux-vserver.at/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Roth</id>
		<title>Linux-VServer - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://linux-vserver.at/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Roth"/>
		<link rel="alternate" type="text/html" href="http://linux-vserver.at/Special:Contributions/Roth"/>
		<updated>2026-04-09T16:00:28Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.20.2</generator>

	<entry>
		<id>http://linux-vserver.at/Networking_vserver_guests</id>
		<title>Networking vserver guests</title>
		<link rel="alternate" type="text/html" href="http://linux-vserver.at/Networking_vserver_guests"/>
				<updated>2008-02-21T13:39:57Z</updated>
		
		<summary type="html">&lt;p&gt;Roth: /* Host as router */ format for printing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Setting up network access to and from your vserver guests.&lt;br /&gt;
__TOC__&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Lets imagine, you have only one external IP -- &amp;lt;code&amp;gt;$EXTIP&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You want to have several vservers running without worrying about port overlapping.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
Two vservers run a default webserver, running on port 80. If each &amp;quot;guest&amp;quot; vserver shares an IP with the host, then the two webservers will conflict.&lt;br /&gt;
&lt;br /&gt;
One solution is:&lt;br /&gt;
&lt;br /&gt;
* All vservers are contained in a &amp;quot;virtual lan&amp;quot;, say 192.168.1.x&lt;br /&gt;
* Each vserver has its own IP&lt;br /&gt;
* Control port forwarding on &amp;quot;parent&amp;quot; host. That is, run a router.&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
===Host===&lt;br /&gt;
Set up &amp;lt;code&amp;gt;dummy0&amp;lt;/code&amp;gt; interface on the parent host&lt;br /&gt;
 # /etc/network/interfaces on a Debian box, &lt;br /&gt;
 # configure on other distros with your preferred way&lt;br /&gt;
 auto dummy0&lt;br /&gt;
 iface dummy0 inet static&lt;br /&gt;
     address 192.168.1.250&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
===Guests===&lt;br /&gt;
Set up each guest vserver:&lt;br /&gt;
 cd /etc/vservers/$VSERVER/interfaces/0&lt;br /&gt;
 echo dummy0 &amp;gt; dev&lt;br /&gt;
 echo 192.168.1.1 &amp;gt; ip&lt;br /&gt;
 echo 1 &amp;gt; name&lt;br /&gt;
 echo 24 &amp;gt; prefix&lt;br /&gt;
Consider using a value of &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; equal to the last digit of the IP for easy separation.&lt;br /&gt;
&lt;br /&gt;
===Host as router===&lt;br /&gt;
Configure the host to act as a router.&lt;br /&gt;
&lt;br /&gt;
For internal packets going outside, pretend each packet came from our external IP (put it in one line without backslash):&lt;br /&gt;
 # iptables -t nat -A POSTROUTING -s 192.168.1.0/24 \ &lt;br /&gt;
   -d ! 192.168.1.0/24 -j SNAT --to-source $EXTIP&lt;br /&gt;
For each service that runs on a vserver, map it to an external port. Vserver local address &amp;lt;code&amp;gt;$VHOST&amp;lt;/code&amp;gt; and port &amp;lt;code&amp;gt;$INTPORT&amp;lt;/code&amp;gt; you select one external port &amp;lt;code&amp;gt;$EXTPORT&amp;lt;/code&amp;gt; and run the following (put it in one line without backslash):&lt;br /&gt;
 # iptables -t nat -A PREROUTING -s ! 192.168.1.0/24 \&lt;br /&gt;
   -m tcp -p tcp --dport $EXTPORT &lt;br /&gt;
   -j DNAT --to-destination $VHOST:$INTPORT&lt;br /&gt;
That's all!&lt;br /&gt;
&lt;br /&gt;
==Verifying==&lt;br /&gt;
Try &amp;lt;code&amp;gt;ping pool.ntp.org&amp;lt;/code&amp;gt; from your vserver -- it should ping fine.&lt;br /&gt;
&lt;br /&gt;
Try to connect to your &amp;lt;code&amp;gt;$EXTIP:$EXTPORT&amp;lt;/code&amp;gt; (from another external host) -- you will successfully connect to service running on a guest vserver.&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Frequently_Asked_Questions#If_my_host_has_only_one_a_single_public_IP.2C_can_I_use_RFC1918_IP_.28e.g._192.168.foo.bar.29_for_the_guest_vservers.3F |FAQ on private networking]]&lt;br /&gt;
* [[Frequently_Asked_Questions#When_I_try_to_ssh_to_the_guest.2C_I_log_into_the_host.2C_even_if_I_installed_sshd_on_the_guest._What.27s_wrong_here.3F |Permit guest sshd to bind to its IP address's port 22]]&lt;/div&gt;</summary>
		<author><name>Roth</name></author>	</entry>

	<entry>
		<id>http://linux-vserver.at/Networking_vserver_guests</id>
		<title>Networking vserver guests</title>
		<link rel="alternate" type="text/html" href="http://linux-vserver.at/Networking_vserver_guests"/>
				<updated>2008-02-21T13:29:05Z</updated>
		
		<summary type="html">&lt;p&gt;Roth: /* Host as router */  format for printing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Setting up network access to and from your vserver guests.&lt;br /&gt;
__TOC__&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Lets imagine, you have only one external IP -- &amp;lt;code&amp;gt;$EXTIP&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You want to have several vservers running without worrying about port overlapping.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
Two vservers run a default webserver, running on port 80. If each &amp;quot;guest&amp;quot; vserver shares an IP with the host, then the two webservers will conflict.&lt;br /&gt;
&lt;br /&gt;
One solution is:&lt;br /&gt;
&lt;br /&gt;
* All vservers are contained in a &amp;quot;virtual lan&amp;quot;, say 192.168.1.x&lt;br /&gt;
* Each vserver has its own IP&lt;br /&gt;
* Control port forwarding on &amp;quot;parent&amp;quot; host. That is, run a router.&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
===Host===&lt;br /&gt;
Set up &amp;lt;code&amp;gt;dummy0&amp;lt;/code&amp;gt; interface on the parent host&lt;br /&gt;
 # /etc/network/interfaces on a Debian box, &lt;br /&gt;
 # configure on other distros with your preferred way&lt;br /&gt;
 auto dummy0&lt;br /&gt;
 iface dummy0 inet static&lt;br /&gt;
     address 192.168.1.250&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
===Guests===&lt;br /&gt;
Set up each guest vserver:&lt;br /&gt;
 cd /etc/vservers/$VSERVER/interfaces/0&lt;br /&gt;
 echo dummy0 &amp;gt; dev&lt;br /&gt;
 echo 192.168.1.1 &amp;gt; ip&lt;br /&gt;
 echo 1 &amp;gt; name&lt;br /&gt;
 echo 24 &amp;gt; prefix&lt;br /&gt;
Consider using a value of &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; equal to the last digit of the IP for easy separation.&lt;br /&gt;
&lt;br /&gt;
===Host as router===&lt;br /&gt;
Configure the host to act as a router.&lt;br /&gt;
&lt;br /&gt;
For internal packets going outside, pretend each packet came from our external IP (put it in one line without backslash):&lt;br /&gt;
 # iptables -t nat -A POSTROUTING -s 192.168.1.0/24 \ &lt;br /&gt;
     -d ! 192.168.1.0/24 -j SNAT --to-source $EXTIP&lt;br /&gt;
For each service that runs on a vserver, map it to an external port. Vserver local address &amp;lt;code&amp;gt;$VHOST&amp;lt;/code&amp;gt; and port &amp;lt;code&amp;gt;$INTPORT&amp;lt;/code&amp;gt; you select one external port &amp;lt;code&amp;gt;$EXTPORT&amp;lt;/code&amp;gt; and run the following (put it in one line without backslash):&lt;br /&gt;
 # iptables -t nat -A PREROUTING -s ! 192.168.1.0/24 \&lt;br /&gt;
     -m tcp -p tcp --dport $EXTPORT -j DNAT --to-destination $VHOST:$INTPORT&lt;br /&gt;
That's all!&lt;br /&gt;
&lt;br /&gt;
==Verifying==&lt;br /&gt;
Try &amp;lt;code&amp;gt;ping pool.ntp.org&amp;lt;/code&amp;gt; from your vserver -- it should ping fine.&lt;br /&gt;
&lt;br /&gt;
Try to connect to your &amp;lt;code&amp;gt;$EXTIP:$EXTPORT&amp;lt;/code&amp;gt; (from another external host) -- you will successfully connect to service running on a guest vserver.&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Frequently_Asked_Questions#If_my_host_has_only_one_a_single_public_IP.2C_can_I_use_RFC1918_IP_.28e.g._192.168.foo.bar.29_for_the_guest_vservers.3F |FAQ on private networking]]&lt;br /&gt;
* [[Frequently_Asked_Questions#When_I_try_to_ssh_to_the_guest.2C_I_log_into_the_host.2C_even_if_I_installed_sshd_on_the_guest._What.27s_wrong_here.3F |Permit guest sshd to bind to its IP address's port 22]]&lt;/div&gt;</summary>
		<author><name>Roth</name></author>	</entry>

	<entry>
		<id>http://linux-vserver.at/Networking_vserver_guests</id>
		<title>Networking vserver guests</title>
		<link rel="alternate" type="text/html" href="http://linux-vserver.at/Networking_vserver_guests"/>
				<updated>2008-02-21T12:44:47Z</updated>
		
		<summary type="html">&lt;p&gt;Roth: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Setting up network access to and from your vserver guests.&lt;br /&gt;
__TOC__&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Lets imagine, you have only one external IP -- &amp;lt;code&amp;gt;$EXTIP&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You want to have several vservers running without worrying about port overlapping.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
Two vservers run a default webserver, running on port 80. If each &amp;quot;guest&amp;quot; vserver shares an IP with the host, then the two webservers will conflict.&lt;br /&gt;
&lt;br /&gt;
One solution is:&lt;br /&gt;
&lt;br /&gt;
* All vservers are contained in a &amp;quot;virtual lan&amp;quot;, say 192.168.1.x&lt;br /&gt;
* Each vserver has its own IP&lt;br /&gt;
* Control port forwarding on &amp;quot;parent&amp;quot; host. That is, run a router.&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
===Host===&lt;br /&gt;
Set up &amp;lt;code&amp;gt;dummy0&amp;lt;/code&amp;gt; interface on the parent host&lt;br /&gt;
 # /etc/network/interfaces on a Debian box, &lt;br /&gt;
 # configure on other distros with your preferred way&lt;br /&gt;
 auto dummy0&lt;br /&gt;
 iface dummy0 inet static&lt;br /&gt;
     address 192.168.1.250&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
===Guests===&lt;br /&gt;
Set up each guest vserver:&lt;br /&gt;
 cd /etc/vservers/$VSERVER/interfaces/0&lt;br /&gt;
 echo dummy0 &amp;gt; dev&lt;br /&gt;
 echo 192.168.1.1 &amp;gt; ip&lt;br /&gt;
 echo 1 &amp;gt; name&lt;br /&gt;
 echo 24 &amp;gt; prefix&lt;br /&gt;
Consider using a value of &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; equal to the last digit of the IP for easy separation.&lt;br /&gt;
&lt;br /&gt;
===Host as router===&lt;br /&gt;
Configure the host to act as a router.&lt;br /&gt;
&lt;br /&gt;
For internal packets going outside, pretend each packet came from our external IP:&lt;br /&gt;
 # iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d ! 192.168.1.0/24 -j SNAT --to-source $EXTIP&lt;br /&gt;
For each service that runs on a vserver, map it to an external port. Vserver local address &amp;lt;code&amp;gt;$VHOST&amp;lt;/code&amp;gt; and port &amp;lt;code&amp;gt;$INTPORT&amp;lt;/code&amp;gt; you select one external port &amp;lt;code&amp;gt;$EXTPORT&amp;lt;/code&amp;gt; and run the following:&lt;br /&gt;
 # iptables -t nat -A PREROUTING -s ! 192.168.1.0/24 -m tcp -p tcp --dport $EXTPORT -j DNAT --to-destination $VHOST:$INTPORT&lt;br /&gt;
That's all!&lt;br /&gt;
&lt;br /&gt;
==Verifying==&lt;br /&gt;
Try &amp;lt;code&amp;gt;ping pool.ntp.org&amp;lt;/code&amp;gt; from your vserver -- it should ping fine.&lt;br /&gt;
&lt;br /&gt;
Try to connect to your &amp;lt;code&amp;gt;$EXTIP:$EXTPORT&amp;lt;/code&amp;gt; (from another external host) -- you will successfully connect to service running on a guest vserver.&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Frequently_Asked_Questions#If_my_host_has_only_one_a_single_public_IP.2C_can_I_use_RFC1918_IP_.28e.g._192.168.foo.bar.29_for_the_guest_vservers.3F |FAQ on private networking]]&lt;br /&gt;
* [[Frequently_Asked_Questions#When_I_try_to_ssh_to_the_guest.2C_I_log_into_the_host.2C_even_if_I_installed_sshd_on_the_guest._What.27s_wrong_here.3F |Permit guest sshd to bind to its IP address's port 22]]&lt;/div&gt;</summary>
		<author><name>Roth</name></author>	</entry>

	</feed>