Skip to content

免部署,外网访问你的本地项目 #4

@timest

Description

@timest

前言

身边经常有如下的场景:

  1. 你在家办公,在公司的同事想看你本地修改的项目,或相反。
  2. 有些项目,需要域名访问。
  3. 运维团队部署条件太苛刻
  4. 临时性的小project,用docker等部署方式显得杀鸡用牛刀。

本文是通过ssh的port forwarding来实现免部署,公网IP直接访问本地项目。

准备工作:

  1. 需要一台外网能访问的服务器
  2. ssh

本地模拟一个web项目

新建一个http.py:

from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler

class DemoHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        self.wfile.write('hello world')
        return

if __name__ == '__main__':
    server = HTTPServer(('localhost', 8000), DemoHandler)
    server.serve_forever()
    

然后运行:$ python http.py
打开浏览器输入 http://127.0.0.1:8000/能看到hello world

ssh端口

新开一个终端,输入命令:

$ ssh -NR \*:8000:127.0.0.1:8000 host

关于命令的解释,可以查看man手册或这篇文章Metasploit利用云服务器端口转发,实现内网穿透
然后打开浏览器,输入:
http://host_ip:8000 或 http://[域名]:8000 可以看到本地项目的 hello world。
image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions