64bit alignment, readme

This commit is contained in:
ffdfgdfg 2019-11-10 21:04:35 +08:00
parent a4bdbb2b54
commit bc1783cfb6
2 changed files with 31 additions and 3 deletions

View File

@ -111,6 +111,7 @@ nps是一款轻量级、高性能、功能强大的**内网穿透**代理服务
* [获取用户真实ip](#获取用户真实ip) * [获取用户真实ip](#获取用户真实ip)
* [客户端地址显示](#客户端地址显示) * [客户端地址显示](#客户端地址显示)
* [客户端与服务端版本对比](#客户端与服务端版本对比) * [客户端与服务端版本对比](#客户端与服务端版本对比)
* [Linux系统限制](#Linux系统限制)
* [webAPI](#webAPI) * [webAPI](#webAPI)
* [贡献](#贡献) * [贡献](#贡献)
* [支持nps发展](#捐赠) * [支持nps发展](#捐赠)
@ -144,6 +145,7 @@ nps是一款轻量级、高性能、功能强大的**内网穿透**代理服务
```shell ```shell
./npc -server=1.1.1.1:8284 -vkey=客户端的密钥 ./npc -server=1.1.1.1:8284 -vkey=客户端的密钥
``` ```
**注意:运行服务端后,请确保能从客户端设备上正常访问配置文件中所配置的`bridge_port`端口telnetnetcat这类的来检查**
### 域名解析 ### 域名解析
@ -441,6 +443,27 @@ server_ip=xxx
``` ```
./npc -config=npc配置文件路径 ./npc -config=npc配置文件路径
``` ```
可自行添加systemd service例如`npc.service`
```
[Unit]
Description=npc - convenient proxy server client
Documentation=https://github.com/cnlh/nps/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=simple
KillMode=process
Restart=always
RestartSec=15s
StandardOutput=append:/var/log/nps/npc.log
ExecStartPre=/bin/echo 'Starting npc'
ExecStopPost=/bin/echo 'Stopping npc'
ExecStart=/absolutely path to/npc -server=ip:port -vkey=web界面中显示的密钥
[Install]
WantedBy=multi-user.target
```
#### 配置文件说明 #### 配置文件说明
[示例配置文件](https://github.com/cnlh/nps/tree/master/conf/npc.conf) [示例配置文件](https://github.com/cnlh/nps/tree/master/conf/npc.conf)
##### 全局配置 ##### 全局配置
@ -909,6 +932,11 @@ LevelInformational->6 LevelDebug->7
### 客户端与服务端版本对比 ### 客户端与服务端版本对比
为了程序正常运行,客户端与服务端的核心版本必须一致,否则将导致客户端无法成功连接致服务端。 为了程序正常运行,客户端与服务端的核心版本必须一致,否则将导致客户端无法成功连接致服务端。
### Linux系统限制
默认情况下linux对连接数量有限制对于性能好的机器完全可以调整内核参数以处理更多的连接。
`tcp_max_syn_backlog` `somaxconn`
酌情调整参数,增强网络性能
## webAPI ## webAPI
### webAPI验证说明 ### webAPI验证说明

View File

@ -144,11 +144,11 @@ func (s *conn) SetWriteDeadline(t time.Time) error {
} }
type window struct { type window struct {
remainingWait uint64 // 64bit alignment
off uint32 off uint32
maxSize uint32 maxSize uint32
closeOp bool closeOp bool
closeOpCh chan struct{} closeOpCh chan struct{}
remainingWait uint64
mux *Mux mux *Mux
} }
@ -178,11 +178,11 @@ func (Self *window) CloseWindow() {
} }
type ReceiveWindow struct { type ReceiveWindow struct {
window
bufQueue ReceiveWindowQueue bufQueue ReceiveWindowQueue
element *common.ListElement element *common.ListElement
count int8 count int8
once sync.Once once sync.Once
window
} }
func (Self *ReceiveWindow) New(mux *Mux) { func (Self *ReceiveWindow) New(mux *Mux) {
@ -344,10 +344,10 @@ func (Self *ReceiveWindow) CloseWindow() {
} }
type SendWindow struct { type SendWindow struct {
window
buf []byte buf []byte
setSizeCh chan struct{} setSizeCh chan struct{}
timeout time.Time timeout time.Time
window
} }
func (Self *SendWindow) New(mux *Mux) { func (Self *SendWindow) New(mux *Mux) {