注册下,里面有外网访问实现的真个介绍
此外,还需要配置路由器的虚拟主机功能,外网访问路由器端口映射到自己的树莓派
— 2016.12.09更
虚拟主机里好像需要做端口映射,就是外网访问的所有端口映射到树莓派的某一端口,我之前做的是1~9999端口全部映射到树莓派的22端口,结果是我外网ssh连接树莓派,我输入1~9999端口全部可以ssh到
要想将树莓派作为web服务器等,最好做dmz配置
所谓dmz,最直观的理解是将一台机器通过路由器完全暴露给外网,即外网访问你的路由器的ip,就相当于访问你的树莓派,对应访问的端口也是你的树莓派端口
dmz配置方法比较简单,各个路由器不太一样,大体就是使能dmz功能,将外网映射到你的树莓派ip或者mac地址
使用dmz配置好后验证demo:
#!/usr/bin/python3
import os.path
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
define("port", default=8002, help="run on the given port", type=int)
class IndexHandler(tornado.web.RequestHandler):
def get(self):
self.render('index.html')
class PoemPageHandler(tornado.web.RequestHandler):
def post(self):
noun1 = self.get_argument('noun1')
noun2 = self.get_argument('noun2')
verb = self.get_argument('verb')
noun3 = self.get_argument('noun3')
self.render('poem.html', roads=noun1, wood=noun2, made=verb,difference=noun3)
if __name__ == '__main__':
tornado.options.parse_command_line()
app = tornado.web.Application(handlers=[(r'/',IndexHandler),(r'/poem',PoemPageHandler)],template_path=os.path.join(os.path.dirname(__file__),"templates"))
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
<!DOCTYPE html>
<html>
<head><title>Poem Maker Pro</title></head>
<body>
<h1>Enter terms below.</h1>
<form method="post" action="/poem">
<p>Plural noun<br><input type="text" name="noun1"></p>
<p>Singular noun<br><input type="text" name="noun2"></p>
<p>Verb (past tense)<br><input type="text" name="verb"></p>
<p>Noun<br><input type="text" name="noun3"></p>
<input type="submit">
</form>
</body>
</html>
启动服务
然后通过外网访问