Asp.Net core Linux 监听端口的设置

在linux测试跑.net core,默认端口是5000,5001. 需要修改

尝试有以下几种方式:

1. 在项目csproj文件在linux中,编辑Properties/launchSettings.json文件中的 “applicationUrl”: “http://*:5000;http://*:5050”

2.编辑Program,直接在代码里定义

public class Program
{
    public static void Main(string[] args)
    {
        var host = new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .UseUrls("http://*:5001/")
            .Build();

        host.Run();
    }
}

3.添加配置文件hosting.json,然后在Program中加载配置文件

public static void Main(string[] args)
{
    var config = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("hosting.json", true)
        .Build();

    var host = new WebHostBuilder()
        .UseKestrel(options => options.AddServerHeader = false)
        .UseConfiguration(config)
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseIISIntegration()
        .UseStartup<Startup>()
        .Build();

    host.Run();
}

4. 直接启动时增加参数,两种

在发布文件夹下直接加载dll:

dotnet WebApp1.dll --server.urls "http://*:5001;http://*:5002"

在项目文件下:

dotnet run --urls="http://*:5001/;http://*:5051/"

 

Vesta 主机控制面板

http://vestacp.com/

Vesta,是一个非常简单明了的服务器主机控制面板界。

它速度快,易于使用
安装很简单,界面友好
无需过多配置即可使用
轻形、 快速,资源占用少。

# 当前支持的操作系统:
# RHEL 5, RHEL 6
# CentOS 5, CentOS 6
# Debian 7
# Ubuntu 12.04, Ubuntu 12.10, Ubuntu 13.04, Ubuntu 13.10, Ubuntu 14.04

多语言界面:英语,法语,德语,荷兰语,挪威语,芬兰语,瑞典语,西班牙语,葡萄牙语,意大利语,希腊语,中国,台湾普通话,印度尼西亚,罗马尼亚,波黑,捷克,匈牙利,乌克兰,俄语,土耳其语,阿拉伯语

安装 Vesta 控制面板

1. Root用户登录 SSH
ssh root@your.server-name

2. 下载安装脚本
curl -O http://vestacp.com/pub/vst-install.sh

3. 运行脚本
sh vst-install.sh

卸载 Vesta 控制面板

1. 停止 vesta 服务
service vesta stop

2. 移除 vesta 软件包和软件资源库
RHEL/CentOS:
yum remove vesta*
rm -f /etc/yum.repos.d/vesta.repo

Debian/Ubuntu:
apt-get remove vesta*
rm -f /etc/apt/sources.list.d/vesta.list

3. 删除数据文件夹
rm -rf /usr/local/vesta

你也可以考虑删除管理员用户帐户和其 cron 作业。

Kloxo-MR 中安装 thirdparty phpMyAdmin

/thirdparty/phpMyAdmin/

File not found.

yum install kloxomr-thirdparty-phpmyadmin

安装 Kloxo-MR 7.0.0.b 后发现在面板中点击20150425021410

Url地址 – /thirdparty/phpMyAdmin/

File not found.

打开后找不到文件:

20150425020556

之后在服务组件中也看不到有phpMyAdmin 的信息。

sftp上服务器上的 Kloxo下也确实没有.  也许thirdparty就是要自己装把, 那么就装吧.

如下:

yum list kloxomr-thirdparty*

| 列出以 kloxomr-thirdparty 打头 记得后面有个星号.

kloxomr-thirdparty-phpmyadmin
kloxomr-thirdparty-jcterm
kloxomr-thirdparty-sshterm-applet

,找到全部的kloxomr第三方插件, 然后安装 phpMyAdmin

yum install kloxomr-thirdparty-phpmyadmin

20150425024041

如此,已经OK!

Linux vps 中使用ntp包自动校准时间

很多VPS安装完成后,过了很久才发现时间不准这个问题。有些是由于本身就没有调整好准确的时间,而有些则是因为时差问题导致连日期都有错误。本文将讲解ntpdate这一网络自动校时工具的安装与使用方法。

其实Linux中有个ntp包可以自动校准时间,并且非常好用。

Debian系统安装NTP校时包:

1 apt-get install ntpdate

CentOS系统安装NTP校时包:

1 yum install ntp

校时命令:

1 ntpdate cn.pool.ntp.org

如果想每隔一定时间自动校时,只需将上面的命令加入至Cron就行了:

1 00 12 * * * /sbin/ntpdate cn.pool.ntp.org

* cn.pool.ntp.org是ntp网络授时组织的中国授时源

————-

如果出现ntpdate: step-systime: Operation not permitted,说明vps不允许修改时间,可以使用:

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime


附 OpenVZ VPS不能修改时间的母鸡解决办法

因为系统架构的原因,OpenVZ的linux vps默认是不允许在客户在vps自行修改系统时间,当执行修改时间的操作时,会出错

[root@root ~]# date -s 10:22:33
date: cannot set date: Operation not permitted

解决办法:

1、在OpenVZ主服务器上打开ntp

yum install ntp

2、给客户vps开启修改系统时间的权限:

vzctl set (veid) --capability sys_time:on --save

如果执行这个命令后报错:

WARNING: Some of the parameters could not be applied to a running container.
        Please consider using --setmode option

请先停止该vps后再执行

vzctl stop (veid)
vzctl set (veid) --capability sys_time:on --save
vzctl start (veid)

这样客户就可以自己在vps里修改系统时间了:

[root@root ~]# date -s 11:17:40

Wed Feb 23 11:17:40 CST 2011

VPS中须掌握的常用Linux命令

新手对于Linux类操作系统的恐惧大多数都来自Linux无数难记的命令,但实际上真正需要熟练掌握的Linux命令并不是很多,并且在熟练使用后,你还会发现Linux下的命令比Windows下一层一层的控制台来得远远方便。

相信我,只要经常在LinuxShell环境下工作,你会很快对这个BT的操作系统游刃有余。

下面仅仅介绍一些与VPS息息相关的命令,并且用最通俗易懂的语言来解释这些命令的作用:

 

1、基本的文件目录操作:

显示当前所处的目录:pwd

直接输入pwd即可,服务器会返回你所在的完整目录。

在不同目录之间跳转:cd

进入当前用户的用户目录:cd ~

进入根目录:cd /

进入上层目录:cd ../

进入上上层目录:cd ../../

进入当前目录下的photos目录:cd photos

删除文件:rm

删除readme文件:rm readme (然后系统会询问你是否删除,输入y表示确认,然后回车即可)

强制删除readme文件:rm readme -f (此时系统不会询问而是直接删除)

强制删除photos目录:rm photos -rf (后面的-rf表示强制删除目录)

创建目录:mkdir

在当前目录中创建photos目录:mkdir photos

在根目录中创建photos目录:mkdir /photos

创建文件:touch

创建空白文件readme:touch readme

重命名/移动:mv

将photos目录重命名为pictures: mv photos pictures

对于文件也是一样:mv oldfile newfile

将photos文件/目录移动到根目录:mv photos /

将photos文件/目录移动到上层目录:mv photos ../

复制文件/目录:cp

命令格式与上面的mv一样,第一个参数是源,第二个参数是目标。

2、压缩与解压缩

Linux系统默认的标准压缩格式是tar.gz,对zip也有比较好的兼容性。我们强烈建议如果要对文件进行压缩,都采用tar.gz或zip格式。Linux与Windows都能读取tar.gz(但Windows不太好编辑或创建)

将filename.tar.gz解压到当前目录:tar zxf filename.tar.gz

将photos目录打包成photos.tar.gz文件:tar zcf photos.tar.gz photos

将photos.zip文件在当前目录解压:unzip photos.zip

3、磁盘操作

查看所有分区剩余空间与占用情况:df -hl

[root@pt ~]# df -hl
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
8.6G 3.9G 4.4G 47% /
/dev/sda1 99M 19M 76M 20% /boot
tmpfs 506M 0 506M 0% /dev/shm
/dev/sdb1 16G 3.3G 12G 22% /home/wwwroot
/dev/sdc1 16G 386M 15G 3% /usr/local/mysql/var

目前就只介绍这一个命令就行了,df命令其它的参数暂时没必要介绍。这条命令会将磁盘情况以最人性化的方式显示出来

4、内存操作

查看当前内存使用情况:free -m (m参数:用M为单位显示,该参数还可以为k、g)

[root@pt ~]# free -m
total used free shared buffers cached
Mem: 1010 978 31 0 275 360
-/+ buffers/cache: 342 667
Swap: 1023 0 1023

需要注意的是,实际占用内存并非上面显示的978M,而是:used-buffers-cached,所以上面显示的实际占用内存为978-275-360=343M

至于为什么会这样,请参考VPS管理百科的:Linux free命令实际内存占用全解析与内存工作方式

这种内存管理方式看起来会造成Linux总是占用了几乎所有的物理内存,但却能大大提高Linux的效率:内存作为最快的存储是用来用的,不是用来看的。

4、下载文件:wget

wget是非常好用的文件下载工具。

下载http://www.bootf.com/test.zip文件:wget http://www.bootf.com/test.zip

继续下载(断点续传):wget -c http://www.bootf.com/test.zip

5、进程管理器:top

直接执行top命令,即会显示一个类似于Windows任务管理器的界面,并且实时刷新。如果想对这个界面有深入的了解,参考:Linux下Top命令全解析

退出这个top命令,直接按q建即可。

6、文本文件编辑:vim

此编辑器杀伤力强大,且功能复杂(但是非常好用),详细介绍请参考:Linux下vi编辑器使用教程与用法大全

VPS下对mysql内存性能的优化

VPS的内存对性能至关重要,所以很有必要优化一下。

看了几篇针对vps小内存优化的文章,于是自己也动手参照优化下自己的mysql。

修改过调整好的 my.cnf ,service mysqld restart 启动时报错。

查看log,发现 skip-innodb / skip-bdb / skip-locking,这几个参数有问题。

 

继续学习,查资料,得知 使用的参数都是老版本的参数,mysql5.1对应的为:

skip-innodb  –>  loose-skip-innodb

skip-locking  –> skip-external-locking

skip-bdb (已经废除了skip-bdb这个参数!)

 

配置文件: /etc/my.cnf

# low memory stuff – Mr.Tang
# Tue May 26 22:23:15 CST 2015

[mysqld]

loose-skip-innodb
skip-external-locking
skip-host-cache
skip-name-resolve

character_set_server = utf8
default-storage-engine = myisam

key_buffer_size = 256M
key_buffer = 256K
max_allowed_packet = 1M
myisam_sort_buffer_size = 8M
net_buffer_length = 128K
query_cache_size= 16M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
sort_buffer_size = 1M
table_cache = 4M
table_open_cache = 16M
thread_cache_size = 8M
thread_stack = 131072

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
#safe-updates

[isamchk]
key_buffer = 8M
sort_buffer_size = 8M

[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

解决DirectAdmin(DA) 中 WordPress 更新失败的问题

在DirectAdmin下更新WordPress版本,主题或插件时, 经常出现: “下载失败。 文件流的目标目录不存在或不可写。”的错误提示.

或者是模板,插件”无法删除xxx。”等问题。

这跟文件权限的设置有关,处理方法如下:.

先进入DirectAdmin后台,选择域名站点,在进入”File Manager”.

然后进入“wp-content”文件夹下,勾选”plugins“,”themes“,”upgrade“,”uploads“等有问题的文件夹。

在下面的”set Permission“后设置权限”777“或者”755“, 勾选后面的”Recursive“遍历选项,再点击”set Permission“按钮。

然后可以尝试下更新或删除是否正常。

如果还不行, 可能是文件权限的所有者改变了,可以点击”Reset Owner“,

重置文件所有者再试一次。

一般问题都可以解决了。

—————————————————

再者就是主机服务商的一键脚本安装wordpress时引发的 在DirectAdmin或者cPanel虚拟主机通常带的快速安装wp脚本,如果不进行特殊设置会在wp-config.php文件里面加入 “WP_TEMP_DIR” 属性,此属性虽然有助于确定wordpress下载升级包或者插件时所用的路径但是也有缺点。 也就是说如果你在更换空间时忘记修改了此属性的绝对路径就会出现以上的错误

解决办法是:空间更换完毕后自行修改wp-config里的此项属性所对应的缓存目录的绝对路径,目标文件夹权限设为777。 或者删除类似这样的代码define('WP_TEMP_DIR',      '/home/xxx.com/wp-content/uploads');

另一种:

通过wordpress后台,无法删除插件。甚至通过FTP也无法删除。也就是说删除之后,仍然显示在后台插件列表内。

解决方法: 通过Secure Shell (SSH)删除

这主要是因为插件有隐藏/嵌套的文件,没有出现在FTP.

使用 SSH 访问博客

  1. 通过SSH登录站点。
  2. 使用 SSH 命令浏览 “../wp-content/plugins/”。
  3. 使用 ls -al 查看文件的完全列表。
  4. 通过 rm (文件名)删除部分文件.

Linux下查询端口占用的进程pid

 

今天在CentOS下安装学习Jexus, 装好启动失败.  发现80端口占用了,才想起已经安装了amh.

于是按照windows下”netstat -a”, 查看网络端口连接.  但是显示的列表十分长, 不好查找…

加参数 , 发现几个容易查看的参数命令.
1. 不过滤显示

netstat -lnp

2.过滤. 最方便的,只显示80

netstat -lnp | grep "80"

3.使用 lsof 查询. 没有的话先安装

#yum install lsof #[安装lsof]
lsof -i:80

知道占用端口的进程后修改,可以终止进程:kill pid. 或者修改启动端口.

 

 

CentOS 桌面 + VNC 安装脚本

CentOS下的一段脚本.  直接一起安装桌面,XWindows,VNC远程控制,和支持中文.

#!/bin/bash

yum -y groupinstall "Desktop" #[安装桌面 ]
yum -y groupinstall "X Window System" #[安装XWindows]
yum -y groupinstall "Chinese Support" #[增加中文支持]

#echo 'LANG="zh_CN.UTF-8"' >> /etc/sysconfig/i18n #[设置中文]

startx #[启动XWindows]

#echo 'id:5:initdefault' >> /etc/inittab #[开机自动运行]

yum -y install tigervnc tigervnc-server #[安装VNC远程控制]

echo 'VNCSERVERS="1:root"' >> /etc/sysconfig/vncservers #[设置服务权限]
echo 'VNCSERVERARGS[1]="-geometry 1024x768"' >> /etc/sysconfig/vncservers #[设置服务参数]

vncpasswd #[这一步将会提示你设置VNC的密码]

#service vncserver restart #[重启]
service vncserver start #[启动]
#chkconfig vncserver on #[开机启动]

#后的注释项, 可以自己参考是否使用.  比如是否开机自动启动VNC.

桌面环境相关命令:

# 从命令行切换到桌面环境
startx

# 获取当前启动模式
systemctl get-default

# 修改启动模式为图形化
systemctl set-default graphical.target

# 修改启动模式为命令行
systemctl set-default multi-user.target

默认启动桌面环境后以 root 用户自动登录:

 
# 修改配置文件
vi /etc/gdm/custom.conf


# 增加如下配置
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=root
远程服务设置
# Windows 远程登录需要安装 Xrdp,需要 epel 源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install -y xrdp

# Xrdp 会调用 VNC,安装 tigervnc-server
yum install -y tigervnc-server

# 修改 Xrdp 最大连接数
vim /etc/xrdp/xrdp.ini
max_bpp=32

# 启动 Xrdp 并设置开机启动
systemctl start xrdp
systemctl enable xrdp

# 开放 3389 端口,或者关闭防火墙
firewall-cmd --permanent --zone=public --add-port=3389/tcp
firewall-cmd --reload
# 关闭防火墙
systemctl stop firewalld
# 禁止防火墙开机启动
systemctl disable firewalld
VNC 登录设置

用 VNC 客户端连接登录还需做一些设置

VNC 客户端下载:https://www.realvnc.com/en/connect/download/viewer/

# 为当前用户设置 VNC 密码,不然服务无法启动。此密码和系统密码不一样,这是使用 vnc viewer 登陆时使用的密码
vncpasswd

# 复制服务设置的模板
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
# 修改配置,以 root 用户为例,每个用户都需要单独设置
vim /etc/systemd/system/vncserver@\:1.service

# 将 <USER> 换成用户名,[Service] 下增加 User=root
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=root

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target



# 让服务文件修改生效
systemctl daemon-reload

# 启动服务
systemctl start vncserver@:1
# 设为开机启动
systemctl enable vncserver@:1

# 查看服务端口,用于客户端连接地址
netstat -lnpt|grep Xvnc

# 放行连接端口,每个用户端口不同。也可直接关闭防火墙
firewall-cmd --add-port=5901/tcp --permanent
firewall-cmd --reload