端口转发与代理服务器

我在防火墙后面,在所有端口上阻塞传入连接。 我想在我的机器上运行Apache Web服务器。 是否可以configuration一个免费的公共代理服务器,通过防火墙转发传入的连接到我的本地服务器?

您不需要在防火墙之外的代理拦截您的机器,因为如果没有其他人可以连接到您的机器,代理如何? 所有你需要做的就是在防火墙中将exception转发给你的服务器。 如果您可以访问充当防火墙的路由器,请login并打开端口转发 ,将端口80从路由器转发到您的LAN地址。

如果您无法访问任何作为防火墙的任何设备,则除非您先连接到外部世界,否则局域网外的任何人都无法访问您的设备。 一个例子是SSH调优,根据你的问题来判断可能太复杂了。

如果传出连接相对开放,您可以要求ssh(1)为您创build隧道。

 ssh -R *:8888:localhost:80 [email protected] 

现在,连接到proxyserver.example.com:8888应该被转发到您的本地端口80.从ssh(1)页的详细信息:

  -R [bind_address:]port:host:hostport Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side. This works by allocating a socket to listen to port on the remote side, and whenever a connection is made to this port, the connection is forwarded over the secure channel, and a connection is made to host port hostport from the local machine. Port forwardings can also be specified in the configuration file. Privileged ports can be forwarded only when logging in as root on the remote machine. IPv6 addresses can be specified by enclosing the address in square braces or using an alternative syntax: [bind_address/]host/port/hostport. By default, the listening socket on the server will be bound to the loopback interface only. This may be overridden by specifying a bind_address. An empty bind_address, or the address '*', indicates that the remote socket should listen on all interfaces. Specifying a remote bind_address will only succeed if the server's GatewayPorts option is enabled (see sshd_config(5)). If the port argument is '0', the listen port will be dynamically allocated on the server and reported to the client at run time.