给服务器添加端口映射服务

portmgr.c

 1 #include <stdio.h>
 2
 3 #define IPTABLES        "/sbin/iptables"
 4
 5 int main(int argc, char *argv[])
 6 {
 7         char *iptables_argv[512] = {
 8                 IPTABLES, "-tnat"
 9         };
10         int i = 2;
11         if (argc >= 2) {
12                 switch(*argv[1]) {
13                         case ‘a‘: iptables_argv[i++] = "-A"; break;
14                         case ‘d‘: iptables_argv[i++] = "-D"; break;
15                         default:  iptables_argv[i++] = "--line-numbers"; iptables_argv[i++] = "-nvL";
16                 }
17                 iptables_argv[i++] = "prerouting_port_forwarding";
18                 int j;
19                 for(j = 2; j<argc; ++j)
20                         iptables_argv[i++] = argv[j];
21                 return execv(IPTABLES, iptables_argv);
22         }
23         return 0;
24 }

portmgr.php

 1       switch($_SERVER["REQUEST_METHOD"]) {
 2                 case "GET":
 3                         echo "<body><pre>";
 4                         passthru("./portmgr l");
 5                         echo "</pre></body>";
 6                         exit;
 7                 case "POST":
 8                         switch($_POST["cmd"]) {
 9                                 case "a":
10                                         if ($_POST["dport"] && !empty($_POST["to"])) {
11                                                 //if ($_POST["dport"] === "80" || $_POST["dport"] === "http") {
12                                                 //      $msg = "不能为80(http)端口";
13                                                 //      break;
14                                                 //} else
15                                                 $proto = " -p tcp --dport " . $_POST["dport"];
16                                                 if (!empty($_POST["dst"])) $dst = "-d ". $_POST["dst"];
17                                                 else $dst = "";
18                                                 passthru("./portmgr a " . $dst . $proto . " -j DNAT --to " . $_POST["to"], $ret);
19                                                 if ($ret === 0) $msg = "操作成功";
20                                         }
21                                         break;
22                                 case "d":
23                                         if (!empty($_POST["id"])) {
24                                                 passthru("./portmgr d " . $_POST["id"], $ret);
25                                                 if ($ret === 0) $msg = "操作成功";
26                                         }
27                                         break;
28                         }
29                         break;
30         }
时间: 2024-10-26 07:43:46

给服务器添加端口映射服务的相关文章

服务器80端口映射到8080端口

服务器设备,如果申请域名之后,端口默认指向的为80端口,但是我们更多的服务是发布在了tomcat当中,更多的是使用的8080端口 众所周知,服务器安装nginx能够做端口映射,然后将服务制定到大家想要的地方. 工作需求,提供一个不需要安装nginx的情况下,将80端口映射到8080端口,从而达到直接访问服务器去到达8080端口的服务. 用tomcat用户登录,启动tomcat,发现tomcat无法启动,出现错误:LifecycleException: Protocol handler initi

使用iptables给内网服务器做端口映射

iptables filter 表案例 iptables的语法规则iptables -nvL 查看规则iptables -F 清空规则iptables save 保存写入的规则iptables -Z 清空iptables的数据流计数器iptables -A INPUT -s 源IP -p tcp --sprot 来源端口 -d 目标IP --dport 目标端口 -j DROP/ACCEPT 指定放行的数据流和端口iptables -I/-A/-D INPUT -s 源IP -j DROP 添加

mac中使用docker添加端口映射

mac中使用docker实际是使用boot2docker先通过virtualbox启动了一个linux虚拟机"boot2docker-vm",这样启动后,再从docker中启动container,即使你添加了端口映射,主机也是访问不到的,这是因为这个端口映射是将virtualbox启动的虚拟机映射到container的端口. 此时你需要给virtualbox启动的虚拟机添加路由,例如,你要添加3306端口: 终端中先 ?VBoxManage modifyvm "boot2do

【随笔】mOnOwall添加端口映射

mOnOwall是一个完整的嵌入防火墙软件包,当与一台嵌入个人电脑一起使用时,在免费使用自由软件的基础上,提供具备商业防火墙所有重要特性(包括易用). 这里通过配置mOnOwall的端口设置映射功能,以使外网通过指定端口访问内网主机. 公网IP: 214.132.32.24 内网主机ip: 192.168.1.23 内网主机ssh端口:22 目的:通过ssh远程登录内网主机 打开进入monowall设置界面,点击左边栏 进入防火墙NAT设置界面,点选Inbound,然后点击下方的来添加一个Inb

使用iptables为docker容器动态添加端口映射

1.将当前iptables的配置写入保存到/etc/sysconfig/iptables 2.保存 /etc/init.d/iptables sava 3.修改iptables配置(vi /etc/sysconfig/iptables): 在适当位置增加下面红色的三行,然后重启iptables即可.(30612 是容器对外提供服务的端口) -A FORWARD -i docker0 -o docker0 -j ACCEPT -A DOCKER -d 172.17.0.10/32 ! -i doc

服务器端口映射

添加端口映射netsh interface portproxy add v4tov4 listenport=1234 connectaddress=10.18.51.10 connectport=3389 listenaddress=* protocol=tcp 查看端口映射netsh interface portproxy show all 删除端口映射netsh interface portproxy delete v4tov4 listenport=1234 listenaddress=*

端口映射帮助文档

什么是端口映射? 端口映射又称端口转发,有的又称之为NAT.虚拟服务器.端口映射过程就如同您家在一个小区里B栋2410室,你朋友来找你,找到小区门口,不知道你住哪层哪号?就问守门的保安,保安很客气的告诉了他您家详细门牌号码,这样你朋友很轻松的找到了你家.这个过程就是外网访问内网通过端口映射的形象说法. 为什么要做端口映射? 目前的网络接入主要有2种: 1)ADSL连接猫再直接连接主机,这种情况主机是直接进行ADSL宽带拨号,连接上网通过运行CMD执行ipconfig /all命令可以查看到,PP

端口映射上网

端口映射 实现外网访问内部网站 如今,中小企业内网的组建日趋完善,Intranet通过路由器可以快速.稳定的访问Intranet.然而,外网访问局域网的内网网站是否可行呢?本文对此问题讲述了路由器以及内网服务器上与之相关的配置方法.      如今,中小企业内网的组建日趋完善,Intranet通过路由器可以 快速.稳定的访问Intranet.然而,外网访问局域网的内网网站是否可行呢?本文对此问题讲述了路由器以及内网服务器上与之相关的配置方法.    随着信息化的不断深入,无纸化办公和电子政务的应

http 双向通信之端口映射

新产品开发了近2-3个月,给到客户做试用的时候,发现一个开发这么久从未考虑到的一个通信问题,mark下,下次开发同类产品的时候长点记性了. 产品由客户端与服务端两部分组成,客户端与服务端需要相互通信,协议采用http,两边各开一个端口,用于http请求响应.由于开发的时候都在同一个网段进行测试,所以没有发现任何产品上的问题.到了客户那边才发现客户环境是部署在不同网段的,这就带来了一系列端口映射的问题. 所谓端口映射可以理解为路由地址转换(nat),网段A的机子要访问网段B的机子,中间必须要有个路