原文链接:http://www.cnblogs.com/wyxy2005/p/4274467.html
前提条件:
1.路由配置dmz主机为tk1的ip ,设置路由器中ssh 端口22的访问权限
2.有一台远程服务器,服务器安装了php可以运行php文件(我使用的是阿里云)
家中tk1配置:
脚本python 部署在jetson tk1上,然后设置crontab 定时执行
把python脚本放在 /jetson/testip.py
crontab -e
*/10 * * * * /jetson/testip.py >>/dev/null 2>&1
/*----------------------testip.py-------------------------------*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#!/usr/bin/python
import
re,httplib
conn
=
httplib.HTTPConnection(
"1111.ip138.com"
)
conn.request(
"GET"
,
"/ic.asp"
)
r1
=
conn.getresponse()
data1
=
r1.read()
conn.close()
matchObj
=
re.search( r
'(\d+)\.(\d+)\.(\d+)\.(\d+)'
, data1, re.M|re.I)
if
matchObj:
ip
=
matchObj.group()
conn
=
httplib.HTTPConnection(
"remotedIP"
)
conn.request(
"GET"
,
"/testip.php?debug="
+
ip)
r1
=
conn.getresponse()
print
r1.read()
conn.close()
else
:
print
"error"
|
2.远程服务器配置,直接在php网站目录下放下面php代码
/*------------testip.php--------------*/
<?php
$ipfile
=
"/var/log/homeip.txt"
;
if
(isset($_GET[
'debug'
])) {
$ip
=
$_GET[
'debug'
];
preg_match_all(
'|\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}|'
, $ip, $out, PREG_PATTERN_ORDER);
if
(!empty($out[
0
][
0
])) {
$ip
=
$out[
0
][
0
];
}
else
{
die();
}
$myfile
=
fopen($ipfile,
"w"
)
or
die(
"Unable to open file!"
);
echo ($ip);
fwrite($myfile, $ip);
fclose($myfile);
die();
}
$myfile
=
fopen($ipfile,
"r"
)
or
die(
"Unable to open file!"
);
echo fread($myfile, filesize($ipfile));
fclose($myfile);
die();
|
使用:
http://远程服务器ip/testip.php
返回得到家中jetson tk1 的公网地址,然后 ssh ip就可以登陆上家里的机器了
-----------------------------------注:
ssh ubuntu@192.168.2.123
远程需要显示图形界面:
ssh -X IP