Differences between version 23 and predecessor to the previous major change of AdvancedUserTips.
Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 23 | Last edited on Saturday, July 8, 2006 3:16:46 pm | by AristotlePagaltzis | Revert |
Older page: | version 22 | Last edited on Saturday, July 8, 2006 3:16:09 pm | by AristotlePagaltzis | Revert |
@@ -3,9 +3,17 @@
* In a similar vein, you can get the dynamic linker to show you how external symbols in executables get resolved. See [LD_DEBUG].
* procinfo(8) gives a nice summary of the [Kernel] information available in the <tt>/proc</tt> FileSystem, such as memory/[CPU] usage, KernelModule~s, [IRQ] usage, devices and supported FileSystems. See ProcFileSystem
-* netstat(8) shows active connections, including tcp(7), udp(7) and unix(7) socket connections. <tt>netstat -anAinet</tt> shows all [TCP] and [UDP] [Ports
] that are open on your machine – very handy.
+* netstat(8) shows active connections, including tcp(7), udp(7) and unix(7) socket connections. <tt>netstat -anAinet</tt> shows all [TCP] and [UDP] [Port]
] that are open on your machine – very handy.
+
+* You can run a process that responds to requests on a [Port] below 1024 without running it as the SuperUser if you have it bind to some port above 1024, then use iptables(8) to send it the traffic:
+
+ <pre>
+ iptables --table nat -A PREROUTING -p tcp --dport <i>$external_port</i> -i eth0 -j REDIRECT --to-ports <i>$local_port</i>
+ </pre>
+
+ This way, you could have a process bind to port 8080 locally, but have it appear to outsiders as though it was listening on port 80. (Don’t forget to issue something like <tt>/etc/init.d/iptables save</tt> so this configuration won’t be lost on reboot.)
* Depending on the permissions on certain executables, you can start another [X] server as a normal user. (Default [Slackware] lets you, [Debian] doesn't.) To use virtual terminal 8 (which is normally unused), do <tt>xinit /usr/bin/X11/xterm -display :1.0 -- /usr/bin/X11/Xwrapper :1.0 vt08</tt>. Now if you run [X] programs with <tt>$DISPLAY</tt> set to <tt>:1</tt> instead of <tt>:0</tt>, they go to the server running on vt 8. See xinit(1), Xwrapper(1)
* Store all your data in [CVS] (or SubVersion, or...). It's great. If you're bored, store <tt>/etc</tt> in [CVS] too :)