首页 > 服务器 > 过年回家了,远程管理路由器
作者:ghostry 发布时间:2013-01-28 浏览: 16657
转载注明出处: https://blog.1ge.fun/server/guo-nian-hui-jia-le---yuan-cheng-guan-li-lu-you-qi.html马上就要过年 了.路由器我准备开着,说不定干点什么.但是远程管理是个问题
我以前只会在公司管理.公司又是固定ip设置简单.开放这个ip的权限就行了
回家了就不定在哪上网呢.这可麻烦了.
我又不愿意给所有网络开放路由管理登陆权限.
于是我想到了开放域名管理权限.然后ddns.
先在luci添加防火墙记录,上移到顶部,这样他就是防火墙的第一条了.下面这句是替换第一条记录.
iptables -R zone_wan 1 -s lime.ghostry.tk -j ACCEPT
我发现iptables,最少是我hg255d的iptables不支持这个.就算是写对域名的,最后记录下来的还是域名对应的ip.
于是我设置计划任务.让他每隔10分钟重新设置.这样应该可以反应域名对应ip的变换.
经过测试我的猜想是对的.
然后就是更新dns了.我用的dnspod.有接口可以动态dns.但是用户名密码是提交的必要数据.这到处输入太不安全了.
我又想到了php的curl
查了dnspod的api.他提供的动态dns更新接口不能设置ip.这样岂不是就提交了服务器的ip了.放弃这个.最后选用了修改记录的api.
然后用服务器取得客户端的ip提交过去.用户名密码也记录到服务器上,我想sae的人不至于觊觎我的用户名密码.相对来说还是安全的
具体实现如下,因为看到了sae的Fetchurl就没有用curl了.
<?php
//定义部分
function get_real_ip(){
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
for ($i = 0; $i < count($ips); $i++) {
if (!eregi ("^(10|172/.16|192/.168)/.", $ips[$i])) {
$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
$ip=get_real_ip();
$post=array(
'login_email' =>'用户名',
'login_password'=>'密码',
'lang' =>'cn',
'domain_id' =>域id,
'record_id' =>记录id,
'sub_domain' =>'lime',
'record_type' =>'A',
'record_line' =>'默认',
'value' =>$ip,
'ttl' =>10,
);
$url='https://dnsapi.cn/Record.Modify';
//操作部分
if($ip){
$f = new SaeFetchurl();
$f->setMethod('post');
$f->setPostData( $post );
$ret = $f->fetch($url);
//抓取失败时输出错误码和错误信息
if ($ret === false)
var_dump($f->errno(), $f->errmsg());
echo $ret;
}
这样就实现了不用提交任何信息就更新域名对应ip了.
然后我就可以在任何地方操作我的路由器.又不担心别人也能操作了.
能同时和我一个ip又有坏心眼,又很巧的扫描到我的路由,这样的几率还是很小的.
下一篇: 买了个u盘,开始折腾
不知道普通的路由器OPENWRt系统怎么远程控制,试过一直不成功
我的就是openwrt。
表示没搞过路由~只用hub挂过花生壳
这么高级的hub
不固定ip就难了。。虽然还没搞过
哈 高级应用了
表示不懂,但是连接打不开...
哪有什么连接?
lime.ghostry.tk 难道我理解错了...?
这个必须打不开.这连接只是为了记录ip