Você não menciona qual protocolo deseja usar, ou seja, TCP ou UDP - e também é importante perceber que a "porta" não é tão granular que o sistema suporta para desambiguar sockets. Por exemplo. Se o seu sistema tiver vários endereços IP, a porta 80 pode estar em uso em todos os endereços IP (o aplicativo foi ligado a "0.0.0.0" ou "::" ou a cada endereço IP em seqüência) ou pode estar em uso. somente em um subconjunto desses endereços IP.
A melhor e mais segura forma de determinar se uma porta / endereço é livre e está disponível para tentar se ligar a ela. O Netcat é útil para isso.
nc -l [-s a.b.c.d] -p NN
tentará ligar a porta TCP NN (opcional, o padrão será todos os endereços) a.b.c.d. Adicione a opção -u para fazer o mesmo no UDP.
Em seguida, para saber se a porta está realmente "aberta" conforme você pergunta, é necessário começar a analisar possíveis regras de firewall. Novamente, o mais fácil é tentar se conectar à porta. Use o netcat como acima, no servidor, e de um cliente use o netcat para tentar conectar-se à porta que você abriu.
nc [-u] a.b.c.d NN
se conectará à porta NN em a.b.c.d, usando UDP se o sinalizador -u for especificado. Você pode digitar a entrada no final do cliente e ela deve aparecer no servidor. Se isso não acontecer, você precisa examinar as ferramentas específicas do sistema e da rede.