改变端口号,发布内网网页

一、Windows 10下,用python建立服务

1、发布HTTP服务

用python在本地计算机开启网页

python -m http.server 8072
在路由器中设置端口转发(外部网络(WAN) - 端口转发)
服务名称:HTTP Server

Source IP:空,做啥用的?

通信端口范围:8072 #不要用8000,除非通过DMZ发布本地计算机服务,否则会与路由器端口冲突

本地 IP:开启web服务的内网计算机IP地址

本地通信端口:8072

通信协议:TCP
如果自己的公网IP绑定了域名
http://zhangqihui.me:8072

2、发布HTTPS服务

涉及 证书、端口号等,不嫌弃个人网站带有尾巴了,反正是个人用。最好通过ssh证书访问,不需要;每次输入密码!

1、Windows下的openssl(注意,不是openssh!)

python实现精简的https服务器 #参考用python建立https服务

openssl #用git bash运行,因为其内置openssl

genrsa -out server.key 1024

rsa -in server.key -out server.key

req -new -key server.key -out server.csr

x509 -req -days 1024 -in server.csr -signkey server.key -out server.crt

cat server.crt server.key > server.pem #退出openssl后执行
建立启动文件start_s.py
from http.server import HTTPServer, BaseHTTPRequestHandler

import ssl

httpd = HTTPServer((‘localhost’, 4443), BaseHTTPRequestHandler)

httpd.socket = ssl.wrap_socket (httpd.socket,certfile=’./server.pem’, server_side=True)

httpd.serve_forever()
建立index.html,访问出现501错误,为啥?

如下有问题,需要进一步研究完善!

./openssl #把下载的openssl压缩包解压,执行bin目录下的openssl.exe

>genrsa -out rsa_private_key.pem 1024 #生成私钥文件rsa_private_key.pem

>rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem #生成公钥文件rsa_public_key.pem

>pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt #将原始 RSA私钥转换为 pkcs8格式
Simple Python HTTP/HTTPS Server With Examples
dergachev/simple-https-server.py #python 2
HTTPS server in Python 3.x
windows上RSA密钥生成和使用
Windows下RSA密钥生成工具openssl #从这篇博文下载openssl,解压到c:/下(conf需要,是哪行控制呢,可以放到c:\sbin下吗?)
Binaries and Engines #openssl官网是不提供二进制文件下载的,因为在Windows下编译需要庞大的微软开发工具,还是通过官方建议的地址下载直接安装吧

nginx
反向ssh隧道访问局域网后面的主机

3、使用twisted发布

用Windows 10 的 powershell,在c:\sbin目录下操作

pip install twisted #提示缺少visual c++ 14.0,安装失败,当然,也可以编译安装,以后有时间研究

https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted下载python对应的版本,比如Twisted-17.9.0-cp36-cp36m-win_amd64.whl

pip install Twisted-17.9.0-cp36-cp36m-win_amd64.whl #安装ok

twistd -no web –path #启动失败,为什么?
Python3.6 安装Twisted
python3.5可以安装Twisted吗?

二、用nginx建立服务

用Nginx搭建HTTPS服务器

三、用Node.js建立web服务

参考《Node.js入门》Windows 7下Node.js Web开发环境搭建笔记
在Windows 10中,用git bash新建一个js文件:vim helloworld.js

var http = require(‘http’);

var server = http.createServer(function(request, response) {

response.end(“hello world!”);

});

server.listen(8080);
在git bash中启动http服务:node helloworld.js,通过网址http://localhost:8080/,就可以访问这个web服务了。
Nodejs 搭建https服务器(一)
Nodejs 搭建https服务器
第四天 Nodejs 搭建web服务器
怎样用Node.js快速搭建服务器?